http://plnkr.co/edit/7v63GXSIDon1QKm1GXCE?p=preview
我有一个array
存储被单击的每个按钮的名称。一旦单击对象被放入数组中,我ng-class
会检查数组中对象的名称是否与用于创建按钮的模型相同。然后,如果是这样,请btn-info
打开或关闭课程。
ng-class="{'btn-info': toggleArray[k].name == m.name}"
不知道我的代码有什么问题,但是如果您以从 1 到 3 的确切顺序单击按钮,它会起作用。但是,一旦您开始随机单击按钮,它就会很快中断。
控制器
.controller('ArrayCtrl', ['$scope', function($scope) {
// Init ArrayCtrl scope:
// ---------------------
var vs = $scope;
vs.message = "Add and remove objects from array:";
vs.toggleArray = [];
vs.apiArray = [{name: 'AAA'}, {name: 'BBB'}, {name: 'CCC'}];
vs.selectBtn = function(btnObj) {
var index = vs.toggleArray.indexOf(btnObj);
if (index !== -1) {
vs.toggleArray.splice(index, 1);
}
else {
vs.toggleArray.push(btnObj);
}
};
}
]);
标记
<div class="model-btns">
<ul>
<li ng-repeat="(k, m) in apiArray"
ng-click="selectBtn(m)"
class="tag-li">
<button class="btn"
ng-class="{'btn-info': toggleArray[k].name == m.name}">
{{m.name}}
</button>
</li>
</ul>
</div>
<div class="well list-delete">
<p>List to delete:</p>
<ul>
<li ng-repeat="item in toggleArray">
{{item}}
</li>
</ul>
</div>