这是我的控制器操作:
saveArticle(article, blocks) {
let self = this;
return RSVP.all(article.get('blocks').invoke('destroyRecord')).then(function () {
blocks.data.map(function (item) {
let block = self.get('store').createRecord('block', {
article: article,
type: item.type,
format: item.data.format,
text: item.data.text,
});
block.save();
article.get('blocks').pushObject(block);
debug('Block added.');
});
//article.save();
});
}
在创建所有块之后,如何立即执行article.save()?也就是说,我想删除所有当前块,创建新块,并仅在执行所有这些操作之后保存文章。 我感谢任何想法!
答案 0 :(得分:0)
我用以下代码解决了这个问题:
saveArticle(article, blocks) {
let self = this;
return RSVP.all(article.get('blocks').invoke('destroyRecord')).then(function () {
debug("Blocks deleted");
let promises = blocks.data.map(function (item) {
let block = self.get('store').createRecord('block', {
article: article,
type: item.type,
format: item.data.format,
text: item.data.text,
});
return block.save();
});
return RSVP.all(promises).then(function () {
debug("Blocks saved");
return article.save().then(function () {
debug("Article saved");
});
});
});
}