Javascript angularjs中的removeClass相似逻辑 。。ng重复 点击

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

上面代码的问题是,在将活动类添加到单击的类之前,不会重置所有li的类。如何在angluarjs中应用removeClass逻辑

这可能与为每个迭代创建子范围的ng repeat有关

您应该尝试以下方法:

.. 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)">