在子路线中创建新记录时刷新父路线的模型?
Refreshing a parent route's model when creating new record in a child route?
我有一个列出许多对象的父路由和一个允许用户在模式对话框中创建新对象的子路由。类似于:
// 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 发送一个动作来让它工作:
// 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'));
}
}
}
}
我有一个列出许多对象的父路由和一个允许用户在模式对话框中创建新对象的子路由。类似于:
// 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 发送一个动作来让它工作:
// 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'));
}
}
}
}