我有一个列出许多对象的父路由和一个允许用户在模式对话框中创建新对象的子路由。像这样:
// Parent route (app.colours)
export default Ember.Route.extend({
model() {
return this.store.findAll('colour');
},
}
以及允许您添加新对象的子路由:
// Child route (app.colours.create)
export default Route.extend({
model() {
return this.store.createRecord('colour');
},
actions: {
save(colour) {
color.save().then(() => this.transitionTo('app.colours'));
}
}
我注意到,当我成功创建新的colour
记录并转换回父路由时,新记录不在列表中,因为父路由的模型尚未刷新。
如何告诉父路由从子路由刷新其模型?
救援行动。我通过向父母发送一个操作来让它工作:
// Parent route (app.colours)
export default Ember.Route.extend({
model() {
return this.store.findAll('colour');
},
actions: {
refreshModel() {
this.refresh();
}
}
}
和
// Child route (app.colours.create)
export default Route.extend({
model() {
return this.store.createRecord('colour');
},
actions: {
save(colour) {
color
.save()
.then(() => {
this.send('refreshModel');
this.transitionTo('app.colours'));
}
}
}
}