Javascript angularjs中的removeClass相似逻辑 。。ng重复 点击
上面代码的问题是,在将活动类添加到单击的类之前,不会重置所有li的类。如何在angluarjs中应用removeClass逻辑 这可能与为每个迭代创建子范围的ng repeat有关 您应该尝试以下方法:Javascript angularjs中的removeClass相似逻辑 。。ng重复 点击,javascript,angularjs,Javascript,Angularjs,上面代码的问题是,在将活动类添加到单击的类之前,不会重置所有li的类。如何在angluarjs中应用removeClass逻辑 这可能与为每个迭代创建子范围的ng repeat有关 您应该尝试以下方法: .. ng-repeat <li ng-class="{'active':selIndex==$index}"> <span ng-click="selIndex=$index">click</span> </li> 点击 如果你有嵌套的n
.. ng-repeat
<li ng-class="{'active':selIndex==$index}">
<span ng-click="selIndex=$index">click</span>
</li>
点击
如果你有嵌套的ng repeat,它将成为调试的地狱。我建议您使用控制器作为语法:您不会主动删除Angular中的类。告诉Angular在什么情况下哪个类必须是活动的,它会找到答案。您可以使用
ng类
,就像您所做的那样。如果条件为true
,则该类将出现在元素上,否则不会出现每当任何状态更改时,Angular将重新计算所有元素的所有类。Angular将在其条件变为false
时立即删除类
更有可能的是,你的逻辑在某个地方不起作用。我不会对任何东西使用$index
,因为任何一个项目的索引都可能随时改变。而是使用数据本身:
<li ng-class="{'active':$parent.selIndex==$index}">
<span ng-click="$parent.selIndex=$index">click</span>
</li>
在
ng click
指令中使用直接赋值在范围上可能会变得棘手;在控制器上使用函数通常不会出现任何问题。您好,这与您的上一个问题有何不同。请查看这是否有助于@Tushar,这是不同的。我半途而废,无法继续。现在还不清楚发生了什么或没有发生什么,以及你期望的是什么……输入错误:ng click=“selfindex=$index”
ng click应该有一个=这部作品,就像accordian一样。我想有一个按钮,可以删除acitive类。不是说,如果很难将它放在控制器上,例如,ng repeat嵌套在另一个ng repeat中,那么您可以使用ng init创建“activeItem”variable@Jennifer然后只需设置activeItem=null…@不,您不想删除类。您希望在$scope
上对您的状态进行建模,然后将视图设置为相应地显示该状态。这意味着任何人都应该能够在任何时候查看您的$scope
,并完全从当前的数据中了解当前的情况。不要直接“手动”在视图中添加或删除任何内容很可能您需要一个按钮,用于将当前活动项设置为null
。activeItem.id来自何处?
$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)">