使用angularjs更改ng-click上的按钮值

时间:2014-10-30 17:40:58

标签: angularjs

我有一个项目列表,我使用 ng-repeat 显示。

<div ng-controller="MyCtrl">
   <div ng-repeat = "item in items">
      item-{{item}} <button ng-click = 'addThis(item)'>add to list</button>
   </div>
</div>

当用户点击按钮添加到列表时,它会将该项目添加到另一个列表中。添加之后,我希望按钮值添加到列表,并且应删除按钮ng-click功能。

控制器

function MyCtrl($scope) {
  $scope.items = [1,2,3,4,5,6,7,8,9,10,11,12,13];
  $scope.addedItems = [];
  $scope.addThis=function(item){
    var added = false;
    for(var i=0;i<$scope.addedItems.length;i++){
        if($scope.addedItems[i] === item){
            added = true;
            break;
        }
    }
    if(!added){
        $scope.addedItems.push(item);
        // here i want something to change the button
        console.log($scope.addedItems);
        }
    else{
        alert("already added");
        }       
   }
}

如果该项目已添加到列表中,有人可以告诉我如何更改按钮值。

我在这附加fiddle

2 个答案:

答案 0 :(得分:1)

您可以为此创建一个简单的指令,然后使用:

 <button my-button ng-click = 'addThis(item)'>add to list</button>

这是您更新的fiddle

您可以轻松禁用,对元素执行任何操作。

该指令是用于DOM操作的AngularJS解决方案。

更多信息:directives

答案 1 :(得分:0)

样品

<div ng-controller="MyCtrl">
  <div ng-repeat = "item in items">
    item-{{item}} <button ng-hide="buttonHidden[$index]" ng-click = 'addThis(item, $index)'>add to list</button>
  </div>
</div>

然后添加后,

$scope.addedItems.push(item);
$scope.buttonHidden[$index] = true;