Javascript 角度:ngOnChanges未检测到更改?
我在一个组件中有一个下拉列表。每次下拉列表的值发生变化时,我都试图检测另一个组件中的变化值。但我有一个奇怪的问题。有时,当我更改dropdown的值时,它会触发ngOnChanges,有时则不会。我不知道为什么 这是我的代码: AppComp html 在浏览器控制台中,您可以看到它有时检测到更改,有时不检测 未检测到更改: 检测到更改:Javascript 角度:ngOnChanges未检测到更改?,javascript,angular,typescript,Javascript,Angular,Typescript,我在一个组件中有一个下拉列表。每次下拉列表的值发生变化时,我都试图检测另一个组件中的变化值。但我有一个奇怪的问题。有时,当我更改dropdown的值时,它会触发ngOnChanges,有时则不会。我不知道为什么 这是我的代码: AppComp html 在浏览器控制台中,您可以看到它有时检测到更改,有时不检测 未检测到更改: 检测到更改: 当输入模糊时调用change函数。您可以像这样使用ngModel和ngModelChange函数: <td width="20%" class="cur
当输入模糊时调用change函数。您可以像这样使用ngModel和ngModelChange函数:
<td width="20%" class="cursor">
<select (ngModelChange)="changedvalue($event)" [(ngModel)]="value" class="form-control" name="level">
<option hidden selected> -- Select options -- </option>
<option>Level 1</option>
<option>Level 2</option>
</select>
</td>
<td class="cursor">
<app-other-comp [group]="group"></app-other-comp>
</td>
你能指出它被检测到的场景与没有检测到的场景吗?还是完全随机发生?你能观察到任何模式吗?将你的代码添加到StackBlitz中,但问题没有出现happens@LloydFrancis我注意到,在初始化组件之后,若我改变了值,它就不工作了,但在那个之后它开始工作,这意味着第一次它不起作用,但在它之后works@Junaid你有没有检查stackblitz链接?这似乎不是问题的原因。请检查问题中的stackblitz链接。它很好用。
group: string;
changedvalue(event: Event) {
const value = (<HTMLSelectElement>event.target).value;
this.group = value;
console.log('From AppComp' + this.group);
}
@Input() group: string;
ngOnChanges() {
console.log('Changed : ' + this.group);
}
<td width="20%" class="cursor">
<select (ngModelChange)="changedvalue($event)" [(ngModel)]="value" class="form-control" name="level">
<option hidden selected> -- Select options -- </option>
<option>Level 1</option>
<option>Level 2</option>
</select>
</td>
<td class="cursor">
<app-other-comp [group]="group"></app-other-comp>
</td>