在Angular中,如何删除"选择"来自李的课,然后将它应用到新的李?

时间:2014-09-28 21:10:57

标签: javascript angularjs

在下面的代码中(单击演示),如何删除"选中"来自"零" li项目并将其应用于" Two"李项目。换句话说,我如何首先清除当前选择的li然后应用"选择"上课到新的李?

在演示代码中,似乎removeClass()甚至应用于新选择的li。最终的结果是没有一个人能够选择"选择"类。另请注意,如果您注释掉JS代码的第11行,那么" Zero"和"两个"选择"选择"类。目标是只选择"选择"类应用于"两个"。

请告知。

Demo

1 个答案:

答案 0 :(得分:1)

试试this version。在查看角度应用时,您需要重新考虑您的方法。你的控制器不应该像那样进行jquery操作。相反,查看我的示例,看看DOM的所有状态是如何由范围数据状态驱动的。我不需要跟踪可能会或可能不会应用于给定元素的各种类,也不需要知道模板正在做什么。

执行选择逻辑的另一种方法是使用单独的范围变量$scope.selected。然后你可以摆脱select()范围功能,只需在模板中执行以下操作:

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