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 ЗАКРЫТО:

В конце концов мне удалось сделать это с помощью:

этот.мойСписок = этот.мойСписок

Я прочитал это решение по адресу: Angular2 ngFor OnPush Change Detection with Array Mutations


person Marco Castano    schedule 23.07.2017    source источник
comment
Как вы относитесь к staticVar в своем представлении?   -  person Vega    schedule 23.07.2017
comment
Я не использую staticVar. Я использую мой список. РЕДАКТИРОВАТЬ сделано   -  person Marco Castano    schedule 23.07.2017
comment
Разве вам не нужно '| асинхронный?   -  person Vega    schedule 23.07.2017
comment
Есть ли особая причина, по которой вы запускаете этот код внутри метода ngAfterViewInit? На этом обнаружение изменений завершено, поэтому я бы не стал делать ставку на то, что изменения в модели отразятся в шаблоне.   -  person Tomek Sułkowski    schedule 24.07.2017
comment
Но внутри метода ngAfterViewInit, когда установлена ​​моя статическая переменная и я беру результат оттуда, они отображаются в шаблоне. Но когда я дошел до конца прокрутки и снова вызвал requestForPost , новые сообщения не появляются в шаблоне @Tomek   -  person Marco Castano    schedule 24.07.2017