当我需要在没有模型更改的情况下重新渲染组件时,我有Angular2 +的情况。
我试试
ApplicationRef.tick() ,NgZone.run(callback),ChangeDetectorRef.detectChanges()--
不成功
如果模型没有改变,有没有办法重新渲染组件的标记?
答案 0 :(得分:0)
免责声明:这只是一个解决方法/黑客的建议,因为您的用例是在Angular世界中难以匹配的用例(其中状态定义了所有内容并且状态触发事件发生了变化) )。
为什么没有反映窗口调整大小次数的模型?没有必要让它在网站上可见,因为即使在隐藏元素中也可以使组件重新绘制。
@Component({
selector: 'zomg',
template: `<span style="display:none;">{{resized}}</span>`
})
class Clss {
resized: number = 0;
constructor() {
const _self = this;
window.onresize = () => {
_self.resized++;
};
}
}
或者使用HostListener:
@Component({
selector: 'zomg',
template: `<span style="display:none;">{{resized}}</span>`
})
class Clss {
resized: number = 0;
@HostListener('window:resize')
onWindowResize() {
this.resized++;
}
}