如何在 Ember 中绕过路线传递对象?
How to pass objects around routes in Ember?
假设我有 3 个相互嵌套的路由:
/users - shows UserList
- /:id - shows UserDetail
- /address - shows the 'Address' tab of a 'user' object
在这种情况下,/address
路由需要 /:id
路由具有的 user
对象。
它不需要从服务器获取它,因为 /:id
路由已经获取了它。它只需要指向该对象的指针。
如何将/:id
获取的对象传递给/address
路由?
您可以在路线上使用 modelFor 方法。例如,您的 address
路线可能如下所示:
export default Ember.Route.extend({
model(params, transition) {
return this.findModel('address', params.address_id);
}
setupController(controller, model) {
controller.set('address', model);
controller.set('user', this.modelFor('users.id'));
}
});
现在,您的控制器现在可以访问 address
和 user
属性,而不仅仅是 model
属性。
假设我有 3 个相互嵌套的路由:
/users - shows UserList
- /:id - shows UserDetail
- /address - shows the 'Address' tab of a 'user' object
在这种情况下,/address
路由需要 /:id
路由具有的 user
对象。
它不需要从服务器获取它,因为 /:id
路由已经获取了它。它只需要指向该对象的指针。
如何将/:id
获取的对象传递给/address
路由?
您可以在路线上使用 modelFor 方法。例如,您的 address
路线可能如下所示:
export default Ember.Route.extend({
model(params, transition) {
return this.findModel('address', params.address_id);
}
setupController(controller, model) {
controller.set('address', model);
controller.set('user', this.modelFor('users.id'));
}
});
现在,您的控制器现在可以访问 address
和 user
属性,而不仅仅是 model
属性。