2

我正在从事 Ionic 2 项目。我正在使用数据库中的数据填充选择输入类型。我正在使用 ngFor 来显示数据。在选择输入类型(更改)时,我想获取其他数据,但 ionic 2 抛出错误“尝试区分时出错”。我现在被困住了。我在 github 上发布了 issue,但没有收到任何回复。而且我的数据数组不为空。致力于 ionic 2 (alpha49) 的最新 alpha

选择输入代码如下

<select (change)="getDetails()" [(ngModel)]="userList">
    <option *ngFor="#name of userList">{{name.name}}</option>
</select>

在打字稿文件中我有一个功能

getDetails() {
    console.log("ok");
}
4

3 回答 3

4

已经有一段时间了,但您不应该将选择器的值绑定到 userList,因为它会覆盖您的数组。

于 2017-01-04T03:26:46.673 回答
3

问题是 中的项目userList不是唯一的。可能您使用模拟数据并复制粘贴了这些项目。

var userList = ['nicojs', 'nicojs' /* "error trying to diff" */];

Angular 2 需要跟踪它正在枚举的项目,就像 AngularJS 一样。所以每个项目都必须是独一无二的。

于 2016-03-01T10:32:53.153 回答
0

正如沃伦所提到的,在我的情况下,我也使用选择器数组作为我的 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>
于 2017-08-21T11:59:03.687 回答