*ng在angular2中运行无限循环

Bhu*_*kar 20 typescript ngfor angular

我试图使用下面的代码使用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>
Run Code Online (Sandbox Code Playgroud)

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

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

表示浏览器输出

(1 ---普山)

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

控制台的快照

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

任何输入?

Gün*_*uer 21

这只是loadProperty(i,element)在每个变化检测周期中反复调用的Angular2变化检测.

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

  • 这正是链接答案中的指令应该做的事情.`<span*ngIf ="element"(onCreate)="loadProperty(i,element)"> </ span>`应该做你想要的. (2认同)