Ho la seguente po 'di modello in un progetto su cui sto lavorando:Come posso impedire che venga chiamata un'azione su un componente principale quando faccio clic su un componente figlio?
<div class="item row" {{action "expandItem"}}>
{{input type="checkbox" checked=isChecked}}
{{item.name}}
</div>
Il problema che sto funzionando in è che cliccando sulla casella di controllo non cambia il suo stato. Tuttavia, attiva l'azione expandItem
. Mi piacerebbe che il comportamento fosse che cliccando sulla casella di controllo cambia isChecked
ma facendo clic in qualsiasi altro punto del div-fire expandItem
. Come posso realizzare questo?
MODIFICA: La domanda Stop click propagation from Ember action è molto vicina, ma la differenza, a quanto vedo, è che l'elemento figlio nell'altra domanda sta utilizzando l'helper {{action}}, che può facilmente interrompere la propagazione con bubbles = false. Nel mio caso, non ho necessariamente un gancio su come la componente di input predefinita di Ember bolle l'azione
SECONDA MODIFICA: ho ricreato esattamente il comportamento che sto vedendo in this JSBin. Noterai come il componente di input e l'helper in linea action
si comportano diversamente. Spero che questo ti aiuti.
Eventuali duplicati di [Stop clicca propagazione dall'azione Ember?] (Http://stackoverflow.com/questions/22230430/stop-click-propagation-from-ember-action) –
@DeepakJose - è molto vicino, la differenza, a quanto vedo, è che l'elemento figlio nell'altra domanda sta usando l'helper '{{action}}', che può facilmente interrompere la propagazione con 'bubbles = false'. Nel mio caso, non ho necessariamente un gancio nel modo in cui la componente di input predefinita di Ember contrasta l'azione. –
try '{{input type =" checkbox "checked = isChecked bubbles = false}}' – locks