我有一个项目列表,我使用 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。
答案 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;