如果满足* ngIf,触发功能?角2

时间:2016-01-13 17:50:09

标签: javascript angular

我在我的某个按钮上放置了*ngIf条件,如果某些字段有效,则会显示该条件,它会在点击时调用geolocation()函数。相反,我想在ngIf满足后立即自动触发此功能。我记得使用角度为1.x的ng-init,但它现在似乎不起作用*ngInit

<button *ngIf="!venueNameInput.control.valid && !address1Input.control.valid" (click)="geolocation()">Test Dojo Geolocation</button>

1 个答案:

答案 0 :(得分:1)

使用某个组件状态实现您自己的更改检测生命周期钩子方法:

geoCalled = false;
...
ngDoCheck() {
    if(!this.geoCalled && this.shouldCallGeo()) {
       this.geolocation();
       this.geoCalled = true;
    }
}
shouldCallGeo() {
   return !this.venueNameInput.control.valid && !this.address1Input.control.valid;
}
shouldDisplay() { return this.shouldCallGeo(); }

更新您的观点:

<button *ngIf="shouldDisplay()">Test Dojo Geolocation</button>