【发布时间】:2014-12-28 13:24:51
【问题描述】:
所以我不知道这是AngularJS的问题,还是我的理解。
在我的应用程序中,我有一个ng-repeat,我需要跟踪活动的$index,当您单击另一个项目时可以更改它。所以我想我会做这样的事情:
<body ng-init="active = -1">
<span ng-repeat="item in items" ng-bind="item" ng-click="active = $index"></span>
</body>
但这不起作用;我知道如果我将ng-click 更改为ng-click="select($index) 并在我的控制器中应用更改,这将起作用。但我想知道为什么上面的实现不起作用。
有趣的是,如果您没有ng-repeat,这确实有效,即:
<body ng-init="active = -1">
<span ng-click="active = 0">Item 1</span>
<span ng-click="active = 1">Item 2</span>
...
</body>
这是这两种情况的Plunker。为什么?
【问题讨论】:
-
所以解决方案似乎是"ng-click="$parent.badClick = $index""
-
@MarvinSmit,是的,我正在阅读该页面。实际上,我更喜欢 Kalhano 的解决方案,因为它不依赖 $parent 以及那里提到的问题。
-
@E.H.B,谢谢。但我真的很喜欢下面的答案,因为我只是在更新活动索引,我宁愿将它保留在 HTML 页面本身中
-
@Kousha 是的,这真的很好
标签: javascript angularjs