<div ng-repeat="item in Items">
<button ng-init="checkIfDisabled[item.name] = true"
ng-disabled ="checkIfDisabled[item.name] ===true "></button>
</div>
我有一个名为cart的变量,其中我有对象。我希望只有当cart变量在其任何对象中具有该对象时才启用该按钮。
将它们添加到购物车时,我这样做了:
var itemname = item.name;
$rootScope.checkIfDisabled[itemname] = false;
但这似乎不起作用。有工作吗?
按钮最初被禁用,但在值更改为false时未启用。
答案 0 :(得分:1)
你需要一个能够容纳所有购物车项目的数组,之后你可以使用条件来启用/禁用它们。
angular.module('myApp', [])
.controller('myController', function($scope) {
$scope.Items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
$scope.cartItems = [];
$scope.addToCart = function(item) {
$scope.cartItems.push(item);
};
$scope.doesExist = function(item) {
return $scope.cartItems.indexOf(item) !== -1;
};
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
<meta charset="UTF-8">
<title></title>
<script src="js/angular.min.js"></script>
</head>
<body ng-controller="myController">
<div ng-repeat="item in Items">
<button ng-disabled="doesExist(item)" ng-bind="item" ng-click="addToCart(item)"></button>
<br/>
<br/>
</div>
</body>
</html>
&#13;