我正在研究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的按钮。刷新/重新加载页面后,按钮将正常工作。
我不知道第一次不工作的原因
任何解决方案?
由于
答案 0 :(得分:0)
这可能发生的一种方式是您在视图模型(类的实例)之前加载了DOM,并且因为没有要评估的模型字段ngIf
变为false。尝试在onInit函数中初始化变量,如下所示。
export class PlansComponent implements OnInit{
plan_id: string;
ngOnInit(){
plan_id = "free";
}
}
因为根据开发人员指南 ngOnInit 生命周期挂钩执行以下操作
在Angular初始化之后初始化指令/组件 数据绑定输入属性。