angularjs - 为 `ng-repeat` 中的每个项目提供唯一 id 以进行 DOM 操作

标签 angularjs angularjs-ng-repeat ng-repeat

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

button(id='anotherID1') Hi

在相关的 Angular 指令中
$('#ID1').on('click', function() {alert('hi');});  // does not work 

$('#anotherID1').on('click', function() {alert('hi');}); // works

我正在执行 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>

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

最佳答案

首先,如果您使用 Angular,建议您坚持使用标准的 Angular 监听器指令,而不是恢复为 jQuery。所以代替 jQuery 的 on , 使用 ng-click您希望 Angular 将监听器绑定(bind)到的 HTML 事件的属性。

例如:

HTML :

<button ng-click="doStuff()">
</button>

Controller :
$scope.doStuff = function () {
    //perform action
};

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

关于angularjs - 为 `ng-repeat` 中的每个项目提供唯一 id 以进行 DOM 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18986631/

相关文章:

javascript - 将值推送到数组 AngularJS

javascript - 如果 div 移动,Angularjs ng-repeat 不起作用

css - AngularJS:有没有办法使用 ng-repeat 从同一数据数组创建行和列?

javascript - AngularJS - 在 ng-repeat 完成后操作 DOM

javascript - AngularJS - 在绑定(bind)中使用三元运算符和过滤器

javascript - Angular2 单元测试 Http MockBackend 问题 - 无法在 mergeOptions 读取未定义的属性合并

javascript - Angular Directive(指令)加载顺序

javascript - Angular ,限制子重复

angularjs - 使用 ng-repeat 限制行数

angularjs - 来自 UI 延迟更新的数据 - ng-repeat(ngAnimate 问题)