Ember.js - 索引路由与 "top-level" 资源路由?
Ember.js - Index route vs. "top-level" resource route?
在 Ember.js 中创建 "standard" crud 资源时,索引路由和 "main" 路由有什么区别?
例如,用户资源:
// app.router.js
Router.map(function() {
this.resource('users', function() {
this.route('new');
this.route('show', { path: '/:user_id'});
this.route('edit', { path: '/:user_id/edit'});
});
});
哪条路线应包含以下 "main" 模型挂钩?
// app/routes/users/index.js OR app/routes/users.js?
export default Ember.Route.extend({
model: function() {
return this.store.find('user');
}
});
换句话说,我应该使用 UsersRoute 还是 UsersIndexRoute?我觉得这很混乱。非常感谢任何帮助。
如果需要给定模型来呈现所有嵌套路由,则应将模型挂钩到 UsersRoute
路由,即 index
、new
、edit
和 show
,因为它会在进入任何这些路线时被调用。
如果模型只在渲染/
路线时需要,而不是/:user_id
路线,那么它应该在UsersIndexRoute
路线中加载。
有关何时触发模型挂钩嵌套路由的示例,请参阅 JsBin。
对于您的用例,它可以是任何一种方式 - 如果您希望 master-child 类型的 UI 也呈现用户列表当 editing/showing/adding 用户时,你应该加载并渲染 UsersRoute
中的用户列表,然后只在嵌套路由中渲染额外的内容;相反,如果您不想在嵌套路由中呈现用户列表,只需在 UsersIndexRoute
.
中加载并呈现它们
在 Ember.js 中创建 "standard" crud 资源时,索引路由和 "main" 路由有什么区别?
例如,用户资源:
// app.router.js
Router.map(function() {
this.resource('users', function() {
this.route('new');
this.route('show', { path: '/:user_id'});
this.route('edit', { path: '/:user_id/edit'});
});
});
哪条路线应包含以下 "main" 模型挂钩?
// app/routes/users/index.js OR app/routes/users.js?
export default Ember.Route.extend({
model: function() {
return this.store.find('user');
}
});
换句话说,我应该使用 UsersRoute 还是 UsersIndexRoute?我觉得这很混乱。非常感谢任何帮助。
如果需要给定模型来呈现所有嵌套路由,则应将模型挂钩到 UsersRoute
路由,即 index
、new
、edit
和 show
,因为它会在进入任何这些路线时被调用。
如果模型只在渲染/
路线时需要,而不是/:user_id
路线,那么它应该在UsersIndexRoute
路线中加载。
有关何时触发模型挂钩嵌套路由的示例,请参阅 JsBin。
对于您的用例,它可以是任何一种方式 - 如果您希望 master-child 类型的 UI 也呈现用户列表当 editing/showing/adding 用户时,你应该加载并渲染 UsersRoute
中的用户列表,然后只在嵌套路由中渲染额外的内容;相反,如果您不想在嵌套路由中呈现用户列表,只需在 UsersIndexRoute
.