Как запустить функцию, нажав на текст (не кнопку), href не работает - PullRequest
0 голосов
/ 25 марта 2020

У меня есть строка текста (Dynami c). когда пользователь нажимает на него, он запускает функцию. Это работает, когда я не использую тег. В ту минуту, когда я добавляю тег (я хочу, чтобы он выглядел как ссылка, даже если это не так), когда пользователь нажимает на текст, он просто переходит на домашнюю страницу. Вот два способа, которыми я попробовал:

              <mat-list-item><b class="title"><a href="#" onclick="downloadFile(batchList.dataPath)" class="dlLink" >Data Path:{{batchList.dataPath}}</a></b> 
//this just redirects to the homepage

<mat-list-item (click)="downloadFile(batchList.dataPath)"><b class="title">Data Path:{{batchList.dataPath}} </b>
//this works, as in the function is fired. But it doesn't act like a link, which I want. I've tried using stop propogation, by adding it to the end of my function, like so:

downloadFile(pathToDownload) {
    this.showLoader = true;
    console.log(pathToDownload);
    from(this.downloadFileService.downloadFile({'pathToDownload': pathToDownload}))
      .subscribe((data: any) => {
        saveAs(new Blob([data], {type: 'application/octet-stream'}), (pathToDownload.substring(pathToDownload.indexOf('part'))));
        this.showLoader = false;
        setTimeout(() => {
        }, 300000)
      })
    event.stopPropagation();
     }

//but it doesn't work. 

Есть идеи?

1 Ответ

1 голос
/ 25 марта 2020

Это может быть потому, что вы используете onClick, когда вместо этого следует использовать (click). Пожалуйста, обратитесь к приведенному ниже примеру.

<a href="javascript:void(0);" (click)="downloadFile()" class="dlLink" >Data Path:{{batchList.dataPath}}</a>

Пример Stackblitz

...