繁体   English   中英

Angular4-获取“未定义”而不是下拉所选值

[英]Angular4 - Getting “undefined” instead of dropdown selected value

首先,我应该说我经历​​了所有针对类似问题而发布的答案,但是没有一个对我有用! 确实很奇怪,因为代码看起来还可以,但是在更改事件中它始终给我未定义的信息!

我尝试了这个:

<select name="countries" id="countries" [(ngModel)]="selectedCountry" (change)="onCountryChange()">                            
    <option *ngFor="let x of countries" [ngValue]="x">{{x.CouName}}</option>
</select>

在我的组件中

 selectedCountry: any[];

 onCountryChange() {  
    console.log(this.selectedCountry);//Give me undefined      
}

我也试过这个:

<select name="countries" id="countries" (change)="onCountryChange($event.target.value)">                            
    <option *ngFor="let x of countries" [ngValue]="x">{{x.CouName}}</option>
</select>

这个也给我不确定

onCountryChange(value) {  
    console.log(value);//Give me undefined      
}

采用

(ngModelChange)="onCountryChange($event)"

代替

(change)="onCountryChange()"

(change)是在烧制之前[(ngModel)]="..."结合被更新。

这是角度的已知问题。

Select change event occurs before ngModel updates

您应该从(change)(ngModelChange)

<select name="countries" id="countries" [(ngModel)]="selectedCountry" (ngModelChange)="onCountryChange(selectedObj)">                            
    <option *ngFor="let x of countries" [ngValue]="x">{{x.CouName}}</option>
</select>

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM