在 *ngIf - Angular 之后调用方法



我想在每次出现我的一个模板时调用一个方法

<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
}

相关内容

最新更新