我想使用ng-click为元素设置一个类。但是,虽然ng-click正确设置了值,但不能使用ng-class在同一元素上拾取它:
<button class="button" ng-click="selected=2;" ng-class="{active:selected==2}"> </button>
上面的代码会改变$ scope.selected的值,但是如果ng-class是通过另一个元素的ng-click设置的,那么ng-class似乎只能选择它。
答案 0 :(得分:1)
尝试这样
<button class="button" ng-click="selected=2" ng-class="{'active':selected==2}"> </button>
答案 1 :(得分:1)
代码运行正常。这是一个工作小提琴,以便您可以查看错误的位置。
代码段:
<button class="button" ng-click="selected=2" ng-class="{active:selected==2}">Click to add class </button>
答案 2 :(得分:1)
为了更好地衡量,请将您的分配与视图分离到控制器中。
控制器:
app.controller('ctrl', function () {
$scope.select = function (index) {
$scope.selected = index;
};
$scope.isSelected = function (index) {
return $scope.selected === index;
};
});
标记:
<button class="button" ng-click="select(2)" ng-class="{ 'active': isSelected(2) }">