Parece que no puedo obtener un botón, generado dentro de un bucle de plantilla #each
, para vincular su acción de clic a su modelo asociado. He aquí una demostración rápida del problema ...Ember.js: enlazar una acción de botón desde un # cada bucle a su propio modelo
La configuración Ember.js
aplicación:
window.Contacts = Ember.Application.create();
Contacts.Person = Ember.Object.extend({
first: '',
last: '',
save: function() {
// send updated information to server.
}
});
Contacts.contactsList = Ember.ArrayController.create({
content:[],
init: function() {
this.pushObject(Contacts.Person.create({
first:'Tom',
last:'Riddle'
}));
}
});
La plantilla:
<script type="text/x-handlebars">
{{#each Contacts.contactsList}}
<li>
{{view Ember.TextField valueBinding="first" viewName="firstname"}}
{{view Ember.TextField valueBinding="last" viewName="lastname"}}
<button {{action "save" on="click"}}>Save</button>
</li>
{{/each}}
</script>
El problema:
Por lo tanto, la idea en este sencillo El escenario de demostración es que el botón "Guardar" para cada registro activará una acción para guardar el estado de su propio modelo. Sin embargo, al hacer clic en el botón Guardar da un error:
Uncaught TypeError: Cannot call method 'call' of undefined
Mi hipótesis sería que la especificación de "salvar" como la acción del botón se uniría al método save
en su modelo. Sin embargo, este no parece ser el caso. Algún otro objeto parece estar manejando acciones de clic, en donde un "poder" de "guardar" no está definido. ¿Me estoy perdiendo de algo? ¿Cómo podría hacer que el botón de cada elemento de línea llame a un controlador en su propio modelo?
¡Gracias de antemano por cualquier ayuda!
segundo enfoque me ayuda! – Franco
La búsqueda global está en desuso – Sisir