5
.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'>

4

5 回答 5

5

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

例如:

HTML

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

控制器

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

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

于 2013-09-24T16:23:07.087 回答
3

id={{'flowchartWindow'+$index}} 这对我有用

于 2015-06-04T08:03:18.317 回答
0

试试按钮(id={{'ID'+$index}})

于 2013-09-24T16:35:33.880 回答
0

为我工作。

http://plnkr.co/edit/llSc8o?p=preview

所以我怀疑 sushain97 是正确的,问题不在于您使用 angular 的方式(事件绑定除外)。

于 2013-09-24T16:42:28.280 回答
-4

对于动态分配的 id。的语法$('#ID1').on('click', function() {alert('hi');});有点改变

$('#YourWrapperID').on('click','#id1' , function(){
    alert('hi');
});

完美运行!

于 2013-09-26T09:33:59.827 回答