在ng-repeat

时间:2015-09-18 10:50:54

标签: javascript angularjs

    <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时未启用。

1 个答案:

答案 0 :(得分:1)

  

你需要一个能够容纳所有购物车项目的数组,之后你可以使用条件来启用/禁用它们。

&#13;
&#13;
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;
&#13;
&#13;