Angular не применяет изменения после повторного открытия родительского компонента с routerLink - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть 1 компонент с именем «parent» и другой с именем child (содержится в маршруте) «child», когда я возвращаюсь к родительскому компоненту с помощью [routerLink] = "['']", ранее загруженные переменные не отображаютсяв компоненте html.

Код в компоненте Родительский компонент:

categories: ProductCategory[];
ngOnInit ()
{
  meuServico.getProductCategories().subscribe(
    categories 
    =>  {
        this.categories = categories;
        console.log(this.categories);
        ...
        optional setTimeout (for tests)
        ...
    }
  )
}

Родительский компонент HTML-код:

<div *ngFor="let category of categories"><br>
    <a>{{ category.name }}</a>   
</div>

Дочерний компонент HTML-код:

<div class="test-purposes" [routerLink]="['']"</div>;

Важная информация: когда я помещаю этот код внутри компонента в надписи:

setTimeout (
() => {
    log (categories)
}, 1000);

Результат console.log внутри setTimeout не определен, но первый console.log (снаружиsetTimeout = real-time) содержит правильный результат.

Важная информация: HTML, а также журнал консоли в setTimeout не появляются после повторного открытия routerLink в дочернем компоненте, где он перенаправляется на родительский компонент

Важная информация: Перед повторным открытием (первый вызов без использования routerLink и подписки) компонент работает отлично

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018
categories: ProductCategory[];
ngOnInit ()
{
  meuServico.getProductCategories().subscribe(
    categories 
    =>  {
        this.categories = categories;
        console.log(this.categories);
        ...
        optional setTimeout (for tests)
        ...
    }
  )
}
0 голосов
/ 04 декабря 2018

Проблема была связана с поставщиками в компоненте и модуле, а также с наблюдаемой, я уже решил

...