【发布时间】:2016-04-12 00:26:45
【问题描述】:
我有以下角度视图:
<div ng-repeat="item in items track by $index">
<input ng-model="item.name"/>
</div>
在控制器中,我调用一个服务来获取一个新的空项目的 Json 表示,以便我可以使用以下函数将其添加到数组中:
$http.post("/NewItemJson").then(function (response) {
$scope.newItem = response.data;
});
$scope.addItem = function() {
$scope.items.push($scope.newItem);
};
但是当我测试视图时,我看到所有通过 addItem() 函数添加的新项目都绑定到同一个范围。我可以这么说,因为如果我更改其中一个输入,所有其他输入都会同时更改:
这很奇怪,因为 ng-repeat 应该为每个项目创建不同的范围。实际上,对于未使用 addItem() 函数添加的数组的所有项目......但在这种情况下不是。我错过了什么?
【问题讨论】:
-
调用 addItem 的代码在哪里?您是否可能只是添加相同的项目?
-
我从视图调用函数,使用 ng-click="addItem()"。我添加的项目是空对象......所有 Id 都是空的 Guid。会不会是这个问题?
标签: javascript angularjs ng-repeat