为"DOM操作"中的"ng-repeat"中的每个项目赋予唯一ID

San*_*ngh 5 angularjs ng-repeat angularjs-ng-repeat

.div(ng-repeat='item in items') 
   button(id='ID{{$index}}') No Hi

button(id='anotherID1') Hi
Run Code Online (Sandbox Code Playgroud)

内部相关的角度指令

$('#ID1').on('click', function() {alert('hi');});  // does not work 

$('#anotherID1').on('click', function() {alert('hi');}); // works
Run Code Online (Sandbox Code Playgroud)

我正在执行DOM操作,我需要ng-repeat元素的唯一ID.还请建议是否可以以任何其他方式执行DOM操作.

编辑:@tymeJV: -

 style.
  .ques {
    height: 50px;
    overflow:hidden;
  }



<div ng-repeat='item in items'>
    <div class='ques'> {{item.ques}}
    </div>
    <button id='ID{{$index}}'> No Hi </button>
</div>
Run Code Online (Sandbox Code Playgroud)

//指令代码: - 增加高度 <div class = 'ques'>

sus*_*n97 5

首先,如果您使用的是Angular,建议您为侦听器坚持使用标准的Angular指令,而不是恢复为jQuery.因此,不要使用jQuery on,而是使用ng-click您希望Angular绑定侦听器的HTML事件的属性.

例如:

HTML:

<button ng-click="doStuff()">
</button>
Run Code Online (Sandbox Code Playgroud)

控制器:

$scope.doStuff = function () {
    //perform action
};
Run Code Online (Sandbox Code Playgroud)

要为每个创建的元素存储唯一ID ng-repeat,如何doStuff使用ID:将参数添加到调用中,ng-click="doStuff(item.ID)"并在$scope.doStuff方法中访问它.