<table>
//thead[...]
<tr ng-repeat="user in users track by user.username">
<td>{{user.username}}</td>
...
</tr>
</table>
每当我在ng-repeat列表中添加其键重复的元素($scope.users.push(newUser);
)时,我都会收到错误:
Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: user in users, Duplicate key: username
我对此感到满意,但我希望使用新对象的值更新旧对象。换句话说,我希望它更新或替换。
我在谷歌找不到任何帮助,所以我迷路了。
答案 0 :(得分:0)
使用.splice代替.push来添加/删除(基本上替换)数组中的项目。
答案 1 :(得分:0)
烦人,因为它可能是类似的(更多的是伪代码,因为我真的不知道你的大部分代码):
for (var i =0; i <=length_of_array; i++){
if (array[i].admin == new_element.admin)
{
array[i] = new_element;
new_element =null;
}
}
if (new_element != null)
{
array.push(new_element)
}
就像我说的那样,基本上没有我推荐的背景,我不是角度专家,但除非有一个我不知道的特定角度解决方案,否则这是另一种选择。