我很难理解ngFor如何与map一起使用。
这是我的HTML代码:
<div *ngFor="let country of wars.getCountrys()">
,这里是我的TypeScript代码:
wars: Map < number, Array < country> > = new Map < number, Array < country > > ();
getCountrys() {
console.log('getCountrys()');
return Array.from(this.wars.keys());
}
一切正常,但是在控制台中我有2个getCountrys()
,我不明白为什么函数getCountrys()
被调用2次。
答案 0 :(得分:1)
不要使用该函数来生成数组。在构造函数中将其创建为变量。
在构造函数中:
this.countries = Array.from(this.wars.keys());
在html中:
<div *ngFor="let country of countries">
答案 1 :(得分:0)
在Angular中,有一个叫做 ChangeDetection 的东西 它基本上可以检测组件数据何时发生更改,然后自动重新呈现视图以反映该更改。
在角度应用的“开发”模式下,完成了一个额外的检测周期,这意味着我们现在有两个检测周期。
这两个循环导致两次执行您的方法。