Ich habe das folgende Stück Vorlage in einem Projekt arbeite ich an:Wie kann ich verhindern, dass eine Aktion für eine übergeordnete Komponente aufgerufen wird, wenn ich auf eine untergeordnete Komponente klicke?
<div class="item row" {{action "expandItem"}}>
{{input type="checkbox" checked=isChecked}}
{{item.name}}
</div>
Der Ärger, den ich in laufende bin ist, dass das Kontrollkästchen klicken nicht ändert seinen Zustand. Es wird jedoch die Aktion expandItem
ausgelöst. Ich möchte das Verhalten sein, dass das Klicken auf das Kontrollkästchen ändert isChecked
, aber Klicken irgendwo anders in der div löst expandItem
. Wie kann ich das erreichen?
EDIT: Die Frage Stop click propagation from Ember action ist sehr nahe, aber der Unterschied, wie ich sehe, ist, dass das Kind-Element in der anderen Frage den {{action}} Helfer, der kann die Ausbreitung mit bubbles = false leicht stoppen. In meinem Fall habe ich nicht unbedingt einen Haken darin, wie Embers Standard-Eingabekomponente die Aktion durchbrennt.
ZWEITE BEARBEITUNG: Ich habe genau das Verhalten wiederhergestellt, das ich in this JSBin10 sehe. Sie werden feststellen, wie sich die Eingabekomponente und der Inline-Helper action
anders verhalten. Hoffe das hilft.
Mögliche Duplikat [Klicken Sie auf Stop Ausbreitung von Ember Aktion?] (Http://stackoverflow.com/questions/22230430/stop-click-propagation-from-ember-action) –
@DeepakJose - Es ist sehr nah, der Unterschied, wie ich es sehe, ist, dass das Kind-Element in der anderen Frage den '{{action}}' Helfer benutzt, der leicht mit 'bubbles = false' aufhören kann. In meinem Fall muss ich nicht unbedingt wissen, wie Embers Standard-Eingabekomponente die Aktion durchbrennt. –
versuchen '{{input type =" checkbox "checked = isChecked bubbles = false}}' – locks