Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ngModel绑定未触发角度输入事件_Javascript_Html_Angular_Typescript - Fatal编程技术网

Javascript ngModel绑定未触发角度输入事件

Javascript ngModel绑定未触发角度输入事件,javascript,html,angular,typescript,Javascript,Html,Angular,Typescript,我目前正在做一个小的角度项目,有一个输入事件的问题 我有以下代码: <select (change)="onSelect($event.target.value)" > <option *ngFor="let option of options" [value]="option.id">{{option.name}}</option> </select> {{option.name} 这很好用。但我想把它改为: <sel

我目前正在做一个小的角度项目,有一个输入事件的问题

我有以下代码:

<select (change)="onSelect($event.target.value)" >   
    <option *ngFor="let option of options" [value]="option.id">{{option.name}}</option> 
</select>

{{option.name}
这很好用。但我想把它改为:

<select (change)="onSelect($event.target.value)" [(ngModel)]="selectedItem">
    <option *ngFor="let option of options" [value]="option.id">{{option.name}}</option>
</select>

{{option.name}
现在,在此之后,将不再触发更改事件。我还尝试了[ngModel]和(ngModelChange)以及更多。但只要ngModel中有某种东西和绑定,事件就不会再触发

我所有的Angular工具都在5.1.2版中,CLI在1.6.2版中

有人知道为什么Angular会有这种行为吗?
您好,谢谢。

当您使用
ngModel
绑定值时,您应该使用
ngModelChange

<select (ngModelChange)="onSelect($event.target.value)" [(ngModel)]="selectedItem">
    <option *ngFor="let option of options" [value]="option.id">{{option.name}}</option>
</select>

{{option.name}

它可以像这样工作:

<select type="number" [(ngModel)]="selectedItem" >
  <option *ngFor="let option of options" [ngValue]="option.id">{{option.name}}</option>
</select>

{{option.name}
这是一个有效的方法,希望它能解决您的问题,兄弟:)

您可以尝试以下方法:

<select type="number" [(ngModel)]="selectedItem" >
  <option *ngFor="let option of options" (click)=“selectedItem(option)” [ngValue]="option.id">{{option.name}}</option>
</select>

然后您可以使用此选项。选项根据您的需要选择。

只需尝试上面的[(ngModel)]这就是我的意思。我尝试了所有可能的组合。不,这是有趣的事情。它适用于dmeo和stackblitz。但是,它在我的项目中不起作用。你能想到为什么会这样吗?我在当地的一个新项目中也尝试过。在那里,它也起作用。只有在我的项目中,那是承认有点大,它不工作。但我仍然希望有onChange触发器。您仍然可以更新plnkr。。。请再次查看,但这正是我的项目中不起作用的地方。[(ngModel)]和(ngModelChange)在某种程度上是不起作用的。我将加入这个问题的讨论,在AOT编译(使用anuglar ng build)中,我面临的问题是ngModel。它拒绝接受事件更改。
optionSelected: any;
selectedItem(option: any) {
if (option) {
 this.optionSelected = option;
} else { 
 this.optionSelected = ‘’;
}
}