我的数据如下:
$scope.cart={"4": {"cost": 802.85, "description": "test", "qty": 1},
"5": {"cost": 802.85, "description": "test", "qty": 1}};
我想循环显示这些数据并将其与删除按钮一起显示。如何使按钮从示波器中删除行并触发角度摘要?所有教程似乎都有数组,并拼接该数组,这不符合我的需要。
这是我到目前为止所做的:http://jsfiddle.net/wbebc4cd/1/
答案 0 :(得分:3)
正如@dfsq所提到的,你的函数中有一个拼写错误。
但更重要的是,当重复地图时,你还应该记住密钥。 (另见How to use ng-repeat to iterate over map entries in AngularJS)
<tr ng:repeat="(key,item) in cart">
然后您可以使用该键删除该项目。
<td>[<a href ng:click="removeItem(key)">X</a>]</td>
答案 1 :(得分:1)
这是删除项目的正确代码。
function CartForm($scope) {
$scope.cart=[{"id": 1, "cost": 802.85, "description": "test", "qty": 1}, {"id": 2, "cost": 802.85, "description": "test", "qty": 1}];
$scope.removeItem = function(item) {
var index = $scope.cart.indexOf(item);
$scope.cart.splice(index, 1);
}
}
答案 2 :(得分:0)
您可以尝试以下方式:
$scope.removeItem = function(item) {
var newCart = {};
angular.forEach($scope.cart, function(value, key){
if(value != item)
newCart[key] = value;
});
$scope.cart = newCart;
};
JSFiddle:http://jsfiddle.net/0v40rhfb/2/