我不明白为什么会出现错误。我的 map 没有改变 .
Expression has changed after it was checked. Previous value: '[object Map Iterator]'. Current value: '[object Map Iterator]'
<tr *ngFor="let author of bindedAuthors.keys()">
<td> {{author}}</td>
<td>
<button (click)="onUpdate(author)"
class="btn gl-btn-primary">Update
</button>
</td>
<td>
<button (click)="onDelete(author)" class="btn gl-btn-default">Delete</button>
</td>
</tr>
结果是预期的,显示了所有数据,但此错误每次都会淹没控制台。
最佳答案
不要绑定(bind)到模板中的方法 ...keys()
。
每次运行更改检测时都会调用它。
object.keys()
每次调用都会返回一个新对象,Angular 将此识别为意外更改,从而导致您的错误。
你可以像这样修复它
someMethod() {
this.bindedAuthorsKeys = this.bindedAuthors.keys();
}
*ngFor="let author of bindedAuthorsKeys"
关于angular - 在迭代期间通过 Angular 2 中的映射键检查表达式后,表达式已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47079366/