角度2 * ngIf在第一次加载时不起作用

时间:2016-06-30 01:53:54

标签: angular angular2-routing angular-ng-if

我正在研究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的按钮。刷新/重新加载页面后,按钮将正常工作。

我不知道第一次不工作的原因

任何解决方案?

由于

1 个答案:

答案 0 :(得分:0)

这可能发生的一种方式是您在视图模型(类的实例)之前加载了DOM,并且因为没有要评估的模型字段ngIf变为false。尝试在onInit函数中初始化变量,如下所示。

export class PlansComponent implements OnInit{
 plan_id: string;

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

因为根据开发人员指南 ngOnInit 生命周期挂钩执行以下操作

  

在Angular初始化之后初始化指令/组件   数据绑定输入属性。