Ember.js - 指数路线与"顶级"资源路线?

时间:2015-01-29 21:56:59

标签: ember.js

创建"标准"在Ember.js中的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?我觉得这很混乱。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:8)

如果需要给定模型来呈现所有嵌套路由,即UsersRouteindexnew和{{}},则应将模型挂钩放到edit路由中{1}},因为它会在输入任何这些路线时被调用。

如果仅在呈现show路由时需要模型,而不是/路由,那么它应该在/:user_id路由中加载。

有关何时触发模型挂钩嵌套路由的示例,请参阅JsBin

对于您的用例,它可以是任何一种方式 - 如果您希望在编辑/显示/添加用户时也使用 master-child 类型的UI来呈现用户列表,应该在UsersIndexRoute中加载和呈现用户列表,然后只在嵌套路由中呈现其他内容;如果你不想在嵌套路线中渲染用户列表,只需在UsersRoute中加载和渲染它们。