我正在从事Ionic 2项目。 我用数据库中的数据填充选择输入类型。 我正在使用ngFor来显示数据。 在选择输入类型(更改)我想获取其他数据但离子2抛出错误“错误尝试差异”。 我现在被困住了。我已经在github上发布了问题,但未收到任何回复。 我的数据数组不是空的。 研究离子2(alpha49)的最新α
选择输入代码如下:
<select (change)="getDetails()" [(ngModel)]="userList">
<option *ngFor="#name of userList">{{name.name}}</option>
</select>
在typescript文件中我有一个函数
getDetails() {
console.log("ok");
}
答案 0 :(得分:4)
已经有一段时间但你不应该将选择器的值绑定到userList,因为它会覆盖你的数组。
答案 1 :(得分:3)
问题是userList
中的项目不是唯一的。可能你使用模拟数据和复制粘贴了这些项目。
var userList = ['nicojs', 'nicojs' /* "error trying to diff" */];
Angular 2需要跟踪它所枚举的项目,就像AngularJS一样。所以每个项目都必须是唯一的。
答案 2 :(得分:0)
正如warren所提到的,在我的情况下我也使用了选择器数组作为我的ngModel,它在更改时覆盖了我的选择器列表。
我改变了我的代码:
<select class="form-controlRT-sm" [(ngModel)]="*dashBoardData.StatusList*">
<option *ngFor="let item of dashBoardData.StatusList" [value]="item.Key">{{item.Value}}</option>
</select>
要:
<select class="form-controlRT-sm" [(ngModel)]="*dashBoardData.status*">
<option *ngFor="let item of dashBoardData.StatusList" [value]="item.Key">{{item.Value}}</option>
</select>