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

ng-repeat 要素に一意の ID が必要な DOM 操作を実行しています。DOM 操作を他の方法でも実行できるかどうかも提案してください。

編集: @timeJV:-

 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 を使用している場合は、jQuery に戻すのではなく、標準の Angular ディレクティブをリスナーに使用することをお勧めします。したがって、jQuery の の代わりに、Angular にリスナーをバインドさせたい HTML イベントonの属性を使用します。ng-click

例えば:

HTML :

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

コントローラー

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

によって作成された各要素に一意の ID を格納するには、ID: を使用して呼び出しにng-repeatパラメーターを追加し、メソッドでアクセスします。doStuffng-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

したがって、sushin97 は正しく、問題は 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 に答える