这看起来非常微不足道,我觉得很尴尬,但我似乎无法在保存当前后创建一个新模型。
想想todo app,你想继续添加新任务:
我有一个非常简单的路线可以正确保存,但不会使用新模型更新前端
model() {
return RSVP.hash({
distro: get(this, 'store').createRecord('distro'),
});
},
setupController(controller, models) {
controller.setProperties(models);
},
actions: {
saveDistro(distro) {
let newDistro = get(this, 'store').createRecord('distro');
distro.save().then(() => {
set(this, 'distro', newDistro);
});
},
}
我想我只是错过了这里显而易见的事实?
答案 0 :(得分:0)
您在这里创建了两个不同的distros
。第一个是传递给控制器以显示的内容,第二个是在操作saveDistro()
中创建的内容。
通常,您不希望在model()
挂钩中创建新记录。这是为了查找数据。由于我不确定你在你的控制器中做了什么,并查看了第一个发行版,我不能对此发表评论,但我建议这样:
编辑:
// Controller
init() {
this._super(...arguments)
this.set('formAttrs', {
attr1: null,
attr2: null
// ...
})
},
actions: {
saveDistro() {
const attrs = this.get('formAttrs')
this.send('saveDistro', attrs)
}
}
// Model
actions: {
saveDistro(attrs) {
let newDistro = get(this, 'store').createRecord('distro', attrs);
distro.save().then(() => {
// transition to new distro route
});
}
}