获取Angular中ng-repeat的每个项目的唯一DOM引用

时间:2014-01-20 06:25:40

标签: javascript angularjs angularjs-directive angularjs-ng-repeat

我的ng-repeat指令属于性质:

<div ng-repeat = "i in items track by $index"> 

    <mydirerctive attr1 = {{i.attr1}}, attr2={{i.attr2}, ng-click="displayMenu(i)"} > </mydirective>

</div>

displayMenu功能应该显示基于所选项目的菜单。为了确定应该呈现菜单的位置,我应该有一个唯一的DOM引用来指向每个项目(例如,一个唯一的id)。如何让ng-repeat中的每个项目获得唯一ID?

2 个答案:

答案 0 :(得分:0)

如果以这种方式编写ng-click,

angular会为您提供$ event对象:

ng-click="displayMenu($event,i)"

从$ event您可以访问触发click事件的元素。只需通过console.log($ event)...

记录$ event

答案 1 :(得分:0)

从它的外观来看,如果需要对相同的DOM元素进行操作,则displayMenu函数应该是指令本身的一部分。因此,不要使用ng-click,而是通过.on()或使用包含ng-click的指令模板在指令内手动监视click事件。然后你只需要传递适当的菜单信息。