Emberjs 保存后创建新模型
Emberjs create new model after saving
这看起来非常琐碎,我觉得问起来很尴尬,但我似乎无法在保存当前模型后创建一个新模型。
想想待办事项应用,您想在其中不断添加新任务:
我有一个非常简单的路线,可以正确保存,但不会用新模型更新前端
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);
});
},
}
我想我只是错过了这里显而易见的东西?
您正在此处创建 2 个不同的 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
});
}
}
这看起来非常琐碎,我觉得问起来很尴尬,但我似乎无法在保存当前模型后创建一个新模型。
想想待办事项应用,您想在其中不断添加新任务:
我有一个非常简单的路线,可以正确保存,但不会用新模型更新前端
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);
});
},
}
我想我只是错过了这里显而易见的东西?
您正在此处创建 2 个不同的 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
});
}
}