ngFor in ionic 2 throw“错误试图差异”

时间:2016-01-19 10:21:54

标签: angular ionic2

我正在从事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");
}

3 个答案:

答案 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>