Angular 2 * ng, если не работает при первой загрузке

Я работаю над версией Angular 2 rc1, у меня проблема с загрузкой * ngIf

Мой код, как показано ниже

export class PlansComponent implements OnInit{
  plan_id: string = 'free';
}

Компонент

<button class="btn btn-default" *ngIf="plan_id == 'free'">Free</button>

Эта страница загружается с помощью метода навигации объекта маршрутизатора на другой странице.

this.router.navigate(['/plans']);

Кнопка с * ngIf не будет отображаться в первый раз. После обновления / перезагрузки страницы кнопка будет работать правильно.

Я не знаю причину почему первый раз не работает

Какие-нибудь решения?

Спасибо


person Thinh Huynh    schedule 30.06.2016    source источник


Ответы (1)


Один из способов, которым это может произойти, заключается в том, что ваша DOM загружена до модели представления (экземпляра вашего класса), и поскольку у нее нет поля модели для оценки, ngIf становится ложным. Попробуйте инициализировать свою переменную внутри функции onInit следующим образом.

export class PlansComponent implements OnInit{
 plan_id: string;

 ngOnInit(){
    plan_id = "free";
 }
}  

Поскольку, согласно руководству разработчика, ловушка жизненного цикла ngOnInit выполняет следующее

Инициализируйте директиву / компонент после того, как Angular инициализирует входные свойства с привязкой к данным.

person HarshaXsoad    schedule 30.06.2016