35

我正在尝试使用以下代码使用 angular2 中的键来呈现对象属性:

<ul>
    <li *ngFor="let element of componentModel | keys;let i=index">
      {{element.key}}--{{element.value}}  // 1---Bhushan...loaded only once
      <span  *ngIf="element">{{ loadProperty(i,element) }}</span>
    </li>
</ul>

但我在这里面临一个问题。浏览器中的输出仅加载一次。但是方法调用 ieloadProperty(i,element)正在无限循环中运行。

loadProperty(i:number,element:any){       
    console.log(element.key+'========'+element.value);
    console.log(element);      
}

表示浏览器输出

(1---布山)

仅显示一次,但在控制台上无限运行,如下所示:

控制台快照

我想每次迭代只调用一次这个方法。

任何输入?

4

1 回答 1

35

这只是工作中的 Angular2 变更检测,loadProperty(i,element)在每个变更检测周期中一遍又一遍地调用。

不鼓励从模板调用方法,因为它们经常被调用。相反,您应该将结果存储在属性中并绑定到该属性。

于 2016-06-17T08:22:46.057 回答