【发布时间】:2016-06-11 15:29:59
【问题描述】:
我有以下代码,目前正在运行,但有一些我无法解决的小问题。用户选择一个选项后,它不会更新(将所选值设置为离子选择)离子选择?基本上 UI 没有用选定的值更新?
<ion-item>
<ion-label>Classifications</ion-label>
<ion-select [(ngModel)]="selectedItem" #item (change)="onChange(selectedItem)">
<ion-option *ngFor="#item of items" [value]="item">{{item}}</ion-option>
</ion-select>
</ion-item>
onChange(selectedItem) {
console.log('Selected item: '+selectedItem);
}
输出正确显示为用户选择,我在这里缺少什么想法?
更新
<ion-item>
<ion-label>Gender</ion-label>
<ion-select [(ngModel)]="gender">
<ion-option value="f" checked="true">Female</ion-option>
<ion-option value="m">Male</ion-option>
</ion-select>
</ion-item>
【问题讨论】:
-
onChange(selectedItem)被调用了吗?selectedItem应该已经被<ion-select [(ngModel)]="selectedItem"更新了。(change)="onChange(selectedItem)不应该是必要的。 -
是的, onChange(selectedItem) 被调用,但如果我删除了那行我如何获得选定的值,因此 console.log('Selected item: '+selectedItem);在构造函数中给出了这个 ReferenceError: selectedItem is not defined.
-
要摆脱错误,您需要将
(change)="onChange(selectedItem)">更改为(change)="onChange($event)">或(change)="onChange(item.value)">(我不知道<ion-item>的属性名称实际上是什么或什么值它提供了事件。 -
如果更改事件
(ngModelChange)="onChange($event)">也调用onChange(),您也可以尝试。 -
它没有用。这个简单的选择示例,默认已经选择了女性。
Gender 女性 男性
标签: javascript typescript angular ionic2