是否可以使用Angular 7在文本中构建动态URL

时间:2019-05-21 18:45:44

标签: angular

我想在评论中单击链接时动态创建一个URL。有什么方法可以做到这一点?

test code on stackblitz.com

   import { Component } from '@angular/core';

   @Component({
      selector: 'my-app',
      template: `<div [innerHTML]="Text"></div>`,
   })

   export class AppComponent  {

      DokumentID: 5

      Text = `The attached document can be found on this link.
              <br><br>
             <a [href]="DokumentOpen(DokumentID)" target="_blank">test.pdf</a>.
             `

      DokumentOpen(DokumentID: number): string{ 
          return "docs/load?"+DokumentID
      }

    }

3 个答案:

答案 0 :(得分:1)

您要绑定innerHtml,然后将文本放入其中,然后期望Angular将其视为Angular指令。为什么这么复杂?

为什么不这样做呢?

    import { Component } from '@angular/core';

    @Component({
          selector: 'my-app',
          template: `<div>`The attached document can be found on this link.
                  <br><br>
                 <a routerLink="docs/load?{DocumentID}" target="_blank">test.pdf</a></div>`,
       })

       export class AppComponent  {
          DocumentID: 5
        }
}

答案 1 :(得分:0)

您可以如下创建:

 <a href="{{downloadURL}}/File/{{fileName}}" id="upload" download="{{fileName}}" target="_self" role="link" class="btn btn-link" >
                      {{ fileName }}
                  </a>
downloadURL = '';
this.downloadURL = environment.apiURL; 
// you can hardcode or take from the enviornment.

答案 2 :(得分:0)

使用占位符。另外,正确设置查询字符串的格式。

return `docs/load?id=${DokumentID}`;

注意反引号。

这也可以使用HttpParams在服务方法中完成。