删除 angularjs 中的类类似逻辑
removeClass alike logic in angularjs
.. ng-repeat
<li ng-class="{'active':selIndex==$index}">
<span ng-click="selIndex=$index">click</span>
</li>
上述代码的问题是,在将活动类添加到单击的类之前,它不会重置所有 li 的类。如何在 angluarjs 中应用 removeClass 逻辑?
您不会主动删除 Angular 中的类。你告诉 Angular 在什么情况下哪个类必须处于活动状态,它会弄清楚的。你和ng-class
一起做,就像你做的那样。如果条件是true
,则类将出现在元素上,否则不会。每当任何状态发生变化时,Angular 都会重新计算所有元素的所有类。一旦条件变得false
,Angular 就会删除类。
更有可能的是,您的逻辑在某处不起作用。我不会将$index
用于任何事情,因为任何一个项目的索引都可能随时更改。而是使用数据本身:
$scope.items = [{ id: 1 }, { id: 2 }];
$scope.activeItem = null;
$scope.selectItem = function (item) {
$scope.activeItem = item;
}
<li ng-repeat="item in items" ng-class="{ active: item.id == activeItem.id }">
<span ng-click="selectItem(item)">
在ng-click
指令中使用直接赋值在范围方面可能会变得棘手;在控制器上使用函数通常没有任何问题。
这可能与为每个迭代创建一个子范围的 ng-repeat 有关。
您应该尝试以下操作:
<li ng-class="{'active':$parent.selIndex==$index}">
<span ng-click="$parent.selIndex=$index">click</span>
</li>
如果你嵌套了ng-repeat,调试起来会变得很麻烦。我建议您使用控制器作为语法:https://stackoverflow.com/a/21292408/1251861
相关文章:
- angularjs删除动态形式元素中的特殊字符
- AngularJS ng选项在选择一个选项后删除了默认的空白值
- AngularJS:删除重复的对象并按值对数组进行重新排序
- 如何通过AngularJS删除一个项目
- 从范围中删除对象时,它会在 Angularjs 中隐藏其余对象
- Laravel 5和AngularJS删除'#'来自url
- AngularJs:删除项目后取消选中复选框
- 使用AngularJs删除哈希前的参数
- 如何使用AngularJs删除数据
- AngularJS删除函数REST HTTP://1.1 500错误
- Angularjs -删除选项从输入选择
- AngularJS删除函数中的作用域变量
- AngularJS删除请求时出现403错误
- Angularjs删除JSon对象
- AngularJS删除&如果其他选择发生更改,则添加选择框选项
- 使用Angularjs删除后刷新联系人列表
- AngularJS:删除 Aria 属性
- 数据不会在 mongodb 中使用 angularJS 删除
- Angularjs删除JSON eval之前的响应数据行
- 使用angularjs删除对象属性