我有一个名为" mainHomeComponent"的组件。 在这个组件里面,我得到了一个名为" requestForPost"的方法。在ngAfterViewInit()内部调用此方法,当滚动条到达页面底部时。
当requestforPost方法完成后,我将结果存储在静态变量中,并存储到AppComponent中。
当我移动到另一个控制器并返回到前一个控制器时,再次触发ngAfterViewInit()方法。这时我寻找我的静态变量,如果这个被设置,我得到它的内容,而不是再次发送请求。
但是当我的滚动条再次到达页面底部时,我的json会更新,但我的DOM并没有。
代码:
ngAfterViewInit()
{
console.log("after");
if(AppComponent.staticVar.length == 0)
{
this.requestForPost();
}
else
{
this.myList = AppComponent.staticVar;
}
}
requestForPost()
{
...
sendingRequest
...
(success) =>
{
this.myList = this.myList.concat(success);
AppComponent.staticVar = this.myList
})
}
在requestForPost方法中,我可以看到" myList"得到更新,但没有进入DOM。
感谢您的帮助。
编辑:
<eleC *ngFor="let item of myList;"></eleC >
编辑2已关闭:
最后我设法做到了:
this.myList = this.myList
我在以下网址阅读此解决方案: Angular2 ngFor OnPush Change Detection with Array Mutations