Html 在*ngIf-Angular之后调用方法

Html 在*ngIf-Angular之后调用方法,html,angular,angular-ng-if,Html,Angular,Angular Ng If,每次我的模板出现时,我都想调用一个方法 <div *ngIf="test" class="col-md-8"> <select class="form-control"> <option type="text>{{test}}</option> </select> </div> 你走错路了。不要调用方法,因为DOM中发生了一些事情——这与Angular试图实施的模式背道而驰 您的模型(来自

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

<div *ngIf="test" class="col-md-8">
    <select class="form-control">
        <option type="text>{{test}}</option>
    </select>
</div>


你走错路了。不要调用方法,因为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
}

你走错路了。不要调用方法,因为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
}

从组件的控制器(即typescript/javascript)执行此操作。你想完成什么?你能说明你想做什么吗?“每次出现一个模板”是什么意思?另外,运行*ngIf是什么意思?当我得到一个测试值时,我正在显示这个模板。我想显示这个模板并调用一个方法不要依赖你的模板来“调用一个方法”。模板用于显示UI和用户交互,即交互的范围。为了弄清楚它到底是什么,你必须解释你想要发生什么,因为“调用方法”太宽泛了。我猜它一定像(单击)或(更改)。从你的组件控制器,即typescript/javascript,这样做。你想完成什么?你能说明你想做什么吗?“每次出现一个模板”是什么意思?另外,运行*ngIf是什么意思?当我得到一个测试值时,我正在显示这个模板。我想显示这个模板并调用一个方法不要依赖你的模板来“调用一个方法”。模板用于显示UI和用户交互,即交互的范围。为了弄清楚它到底是什么,你必须解释你想要发生什么,因为“调用方法”太宽泛了。我猜它一定像(单击)或(更改)。