当多个ember模型完成其保存方法时,我正在尝试触发回调。
var promises = [];
modellist.forEach(function(mymodel){
promises.push(mymodel.save())
}
$.when.apply(null, promises).done(function () {
console.log('finished promises');
}
console.log('finished method');
立即执行apply函数。
问题:以下哪项是正确的?
答案 0 :(得分:2)
我是RSVP.hash
的忠实粉丝,因为它允许一个对象,而RSVP.all
使用一个数组。
如果您想在常规代码中使用它来保存多个模型。
actions: {
doSomething() {
Ember.RSVP.hash({
model1Saved: this.get('model1').save(),
model2Saved: this.get('model2').save(),
}).then((hash) => {
/* hash.model1Saved and hash.model2Saved are available here */
}, (error) => {
/* Deal with error */
});
}
}
这很好,因为你不必弄乱阵列索引。
同时返回路线的模型
model() {
return Ember.RSVP.hash({
posts: this.store.findAll('post'),
tags: this.store.findAll('tag'),
categories: this.store.findAll('category'),
});
},
然后在setupController方法中你可以:
setupController(controller, model) {
this._super(controller, model.posts);
controller.set('tags', model.tags);
controller.set('category', model.categories);
}
答案 1 :(得分:0)
我找到了解决方案:
这在文档中并不容易找到: - (