如何通过方法

时间:2019-03-27 21:11:07

标签: angular

我正在构建Angular 7应用程序。 在这个应用程序中,我有一组链接。当页面加载时,将为每个链接触发getRouterURL(并且每次我单击一个链接时都会触发该方法。这是正确的行为吗?感觉像是在浪费内存吗?

<a [routerLink]="getRouterURL('normal')">Link</a>
<a [routerLink]="getRouterURL('normal')">Link 2</a>
<a [routerLink]="getRouterURL('page')">Link 3</a>
<a [routerLink]="getRouterURL('page')">Link 4</a>

方法看起来像这样。

getRouterURL(type) {
  console.log('Method fired');
  if (type === 'normal') {
    return 'normal' + this.proposalId + '/' + model.id;
  } else {
    return 'pages' + this.proposalId + '/' + model.id;
  }

}

我正确地做到了吗?

1 个答案:

答案 0 :(得分:1)

这是正常行为。 Angular无法知道绑定是否已更改。它只能通过再次执行该功能来知道。这就是为什么通常最好从模板内部限制函数调用绑定的数量。您可以通过使用@Input()(以某种方式设置数据)来解决此问题,或者甚至可以通过使用纯@Pipe

来解决。