我有一个从后台传过来的数组
数组内的资料会不断变化
我希望当数组内容变化时 不须重整页面 模板区块就自动刷新
这该怎么实现?
异步操作可能不会触发angular的检查机制,此时可以尝试手动提醒angular重新渲染视图
import { NgZone } from '@angular/core';
constructor(public _ngZone:NgZone) {}
public refresh() {
this._ngZone.run(() => {});
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
数组是一个引用变量,如果没有对其添加impure pipe,angular每次检测时只会检测该变量的地址是否变化。也就是说即使内容变化了,但是变量内存地址没变,angular是不会认为该变量有变化,所以页面不会刷新。可以使用async pipe。或者每次数组内容更新前将数组变量先置为null,再重新赋值。但是第二个方法不是很严谨,慎用。