Ho problemi con {{actions}} sui componenti Ember (1.11.0) non attivati quando il componente è stato aggiunto alla pagina in modo dinamico. Stranamente, sembra essere correlato al modo in cui l'applicazione ember è stata aggiunta alla pagina - tramite il modello predefinito e aggiunto a un "rootElement".Ember: le azioni del componente create dinamicamente non si attivano
lavoro JSBin: actions are triggered
non lavoro-JSBin: actions aren't triggered
mio Componente Definizione:
<script type="text/x-handlebars" data-template-name="components/foo-bar">
<p>Component {{name}}</p>
<button {{action "doIt"}}>Do It</button>
</script>
App.FooBarComponent = Ember.Component.extend({
click: function() {
console.log('click fired! - ' + this.get('name'));
},
actions: {
doIt: function() {
console.log('doIt fired! - ' + this.get('name'));
}
}
});
L'evento click() e l'azione doIt() non si attivano quando il componente è stato aggiunto alla pagina in modo dinamico. Sto usando append() per aggiungere il componente alla pagina:
App.IndexController = Ember.Controller.extend({
count : 1,
actions: {
createNewFoobBar: function() {
this.set('count', this.get('count') + 1);
var comp = this.container.lookup('component:foo-bar');
comp.set('name', this.get('count'));
comp.set('controller', this);
comp.append();
}
}
});
In entrambi i casi, le azioni siano correttamente attivati quando il componente è parte del modello:
{{foo-bar name="one"}}
Sono in grado di attivare l'evento click() sul componente nel mio precedente esempio JSBin modificando la chiamata append() a appendTo ('# content') Tuttavia l'azione del componente continua a non funzionare come previsto. [jsbin] (http://emberjs.jsbin.com/fojitukere/1/edit?html,js,console,output) – Clavicle