Интерполяция и привязка данных не меняются - PullRequest
0 голосов
/ 01 декабря 2018

У меня угловой проект, в котором я использую интерполяцию и привязку данных.Во всем проекте есть только один компонент, в котором он не работает.

У меня есть простая переменная с именем title , в которой, если я что-то напишу во время ngOnInit метод, он правильно отображается в html.

Однако, если я изменю значение этой переменной позднее, html не будет обновлен.

Вот мой код:

toLeave : boolean = undefined;
title = '';

ngOnInit() {
    this.title = 'Review';
    this.router.events.pipe(
       filter((event: NavigationEnd) => event instanceof NavigationEnd)
     ).subscribe(res => {
          if(this.toLeave != undefined)
             return;
          if(res.url.indexOf('toLeave') >= 0){
              this.toLeave = true;
              this.title = 'Review to leave';
           }else{
              this.toLeave = false;
              this.title = 'Review received';
           }
      })
  }

И в моем HTML:

<span>{{title}}</span>

И я тоже попробую вот что:

<span [innerHTML]="title"></span>

Конечный результат в том, что в html "Отзыв" виден.Поэтому то, что делается в подписке, не обнаружено.

Я попытался принудительно обнаружить изменение с помощью ChangeDetectorRef , но когда я иду вызывать метод detectChanges объект уже уничтожен.

Затем я попытался с помощью ApplicationRef , используя метод tick , но это ничего не меняет.

Может кто-топомогите мне?

Спасибо

1 Ответ

0 голосов
/ 02 декабря 2018

Хорошо, я решил проблему.

Была одна простая вещь, которую я не пытался сделать.

Я переместил код изнутри ngOnInit и запустил еговнутри конструктора.Сейчас все работает правильно

...