ngfor未使用静态变量更新

时间:2017-07-23 17:07:35

标签: angular dom ngfor

我有一个名为" 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

0 个答案:

没有答案