我想在每次出现我的一个模板时调用一个方法
<div *ngIf="test" class="col-md-8">
<select class="form-control">
<option type="text>{{test}}</option>
</select>
</div>
当test
包含值并运行*ngIf
时是否可以执行方法?
> 你走错了路。不要调用方法,因为在 DOM 中发生了一些事情——这违背了 Angular 试图强制执行的模式。
模型(来自 .ts 文件(应控制模板,而不是相反。与其想"当模板的一部分消失时调用此方法",不如退后一步问问自己:
是什么导致
*ngIf
切换组件?
有你的答案。例如,假设您有类似以下内容的内容。
toggle() {
this.flag = !this.flag
}
这就是您的模型更改的地方。如果您希望在切换标志时发生其他事情,请在那里执行。
toggle() {
doSomething()
this.flag = !this.flag
}
如果您希望仅在引发标志(变为 true(时才发生,只需使用条件语句。
toggle() {
if (!this.flag) {
doSomething() // only when turning from false to true
}
this.flag = !this.flag
}