在Angular中,我如何删除“;选择“;从一个李开始上课,然后把它应用到一个新的李身上

In Angular, how do I remove "selected" class from an li and then apply it to a new li?

本文关键字:一个 然后 Angular 应用 李身 开始 何删除 删除 选择 李开始      更新时间:2023-09-26

在下面的代码中(单击Demo),我如何从"Zero"li项中删除"selected"类并将其应用于"Two"li项。换句话说,如何首先清除当前选定的li,然后将"选定"类应用于新的li?

在Demo代码中,removeClass()似乎被应用于新选择的li。最终结果是,没有一个li得到"selected"类。还要注意,如果注释掉JS代码的第11行,"Zero"answers"Two"都有"selected"类。目标是只将"选定"类应用于"两个"。

请告知。

演示

试试这个版本。当你看到一个棱角分明的应用程序时,你需要重新思考你的方法。您的控制器不应该像现在这样进行jquery操作。相反,看看我的示例,看看DOM的所有状态是如何由作用域数据状态驱动的。我不需要跟踪可能应用于或不应用于给定元素的各种类,也不需要知道模板在做什么。

执行选择逻辑的另一种方法是使用单独的作用域变量$scope.selected。然后,您可以去掉select()作用域函数,只需在模板中执行以下操作:

<li ng-repeat="item in items"
    ng-class="{selected: item == selected}"
    ng=click="selected = item">
    {{item.text}}
</li>
相关文章: