Estoy tratando de entender los modelos Ember Data y tengo un problema al intentar asignar una colección de objetos encontrados usando store.findAll()
a una relación hasMany
de un modelo de datos ember.Asignación a una relación hasMany en Ember Data
Tengo dos modelos definidos:
App.Leaf = DS.Model.extend({
text: DS.attr('string'),
branch: DS.belongsTo('App.Branch')
});
App.Branch = DS.Model.extend({
lotsOfLeaves: DS.hasMany('App.Leaf')
});
si le asigno la relación como parte de createRecord()
App.store.loadMany(App.Leaf,[
{ id: 1, text: "Hello, I'm leaf 1", branch_id: 1 },
{ id: 2, text: "Hello, I'm leaf 2", branch_id: 1 }
]);
var allLeaves = App.store.findAll(App.Leaf);
var oneBranch = App.Branch.createRecord({ id: 1, lotsOfLeaves: allLeaves });
continuación, se produce un error (en silencio) como oneBranch.get('lotsOfLeaves.length')
es 0
.
Del mismo modo, se produce un error en silencio si le asigno la relación después de la asociación:
var all = App.store.findAll(App.Leaf);
oneBranch.set('lotsOfLeaves', all);
entiendo que puedo usar pushObject()
en oneBranch.get('lotsOfLeaves')
añadir cada hoja individual, pero es que la única manera?
Ah, por supuesto. Gracias @MikeHickman. Sin embargo, esperaba aprovechar el enlace que se obtiene al usar algo como 'var autoupdate = App.store.findAll (...)' donde cualquier operación CRUD se refleja automáticamente. Entonces en este caso 'oneBranch.get ('lotsOfLeaves')' siempre contendría todos los objetos 'App.Leaf' en el sistema. Parece que tendré que gestionarlo manualmente. – EdgifyJP
Además, sería bueno si el intento de asignar algo a la asociación fallara con un mensaje de algún tipo. Pero con suerte eso mejorará con el tiempo. – EdgifyJP