Ich habe Anweisungen, die so etwas tun:
%Vor%Ja, es ist notwendig, eine jQuery-Way-Bindung für diesen Fall zu erstellen.
Und jetzt möchte ich diese Ereignis (Klick) Propagierung stoppen, wenn eine Bedingung erfüllt ist.
Versucht zu tun:
%Vor%aber es hat nicht geholfen.
hier zum Beispiel fiddle - Ссылка
In Ihrem Fall können Sie die Propagierung nicht stoppen, da click -Ereignis auf demselben Element passiert, es gibt nur zwei verschiedene Handler.
Sie können jedoch die Tatsache nutzen, dass dies sowohl im Controller ngClick
als auch in der Direktive das selbe -Ereignisobjekt ist. Sie können also eine Eigenschaft für dieses Ereignisobjekt festlegen und in der Anweisung nachsehen:
und in der Direktive:
%Vor%Demo: Ссылка
Haben Sie versucht, die Priorität dieser Direktive zu verringern, um sicherzustellen, dass sie nach der ng-click-Direktive bindet? Ich gehe davon aus, dass die Ereignisse in der Reihenfolge ausgelöst werden, in der sie gebunden waren, was wiederum von der Priorität der ng-click-Anweisung gegenüber der Direktive bestimmt wird.
Sie benötigen auch stopImmediatePropagation, um zu verhindern, dass weitere Handler auf demselben Element ausgelöst werden. stopPropagation verhindert nur, dass das Ereignis an die übergeordneten Handler weitergegeben wird.
Tags und Links javascript angularjs angularjs-directive event-propagation