Angular.js: 子要素をクリックすると、独自のng-clickと親もトリガーされます

作成日 2013年12月03日  ·  9コメント  ·  ソース: angular/angular.js

<div>ng-clickあり、次に<button>と別のng-click場合、ボタンをクリックすると両方のng-clickが起動します。ハンドラー。

これに対するイゴールの古代のPR(#31!)を見つけましたが、彼が追加したstopPropagation()はその間のどこかで失われたようです。

二等分しようとしましたが、1.2.3、マスター、1.1.5、1.1.3、1.0.6、または1.0.3では機能しないことがわかりました。 上記のPRでマスターとIgorのコミットを二分しようとしましたが、変更が古くなり(0.10.x)、テストアプリがまったく機能しなくなりました。

Plunkrでこれを再現するための簡単なテストケース。

最も参考になるコメント

クリックイベントの子div$ event.stopPropagation()コードを追加する必要があるだけです

全てのコメント9件

stopPropagation()呼び出しは、1752c8c44a7058e974ef208e583683eac8817789によって削除されたようです。

@tboschは、これが期待どおりに機能するかどうか、またはこの状況に対処するためにできることがあるかどうかを判断してください。

伝播を停止解除する方法がないため、デフォルトでは伝播を停止できません。

伝播を停止しないための有効な使用例があります。
伝播を停止すると、伝播の停止を解除できないため、これらのユースケースは不可能になります。

例:ユースケース:
「公開」ボタンのあるアイテムのリスト。 これらのアイテムの1つをクリックすると、そのアイテムが選択されたアイテムとして強調表示されます。 これは、選択されていないアイテムの「公開」ボタンが押された場合にも当てはまります。

現在、これは可能です。このパンクを参照してください: http

期待どおりに機能するため、これを閉じます。

クリックイベントの子div$ event.stopPropagation()コードを追加する必要があるだけです

モバイルまたはイオンの@gomteshhatgineは機能しませんでした。 子のng-clickもトリガーされません。

私の場合は@gomteshhatgineですが、親が実行するとトリガーされます。 別のアプローチはありますか?

@maceonrails私が試したことがないモバイルについて知らない

@xenogewそれは動作するはずです
コードスニペットを共有していただけますか?

@gomteshhatgineありがとう。 それは働いた。

もう動作しません

このページは役に立ちましたか?
0 / 5 - 0 評価