在ember-cli中使用ID进行路由

时间:2014-12-30 12:41:16

标签: javascript ember.js ember-cli

我正在尝试为我的Ember-Cli应用生成设置页面。我想要的网址是/settings/:id/,其中包含/settings/:id/overview/settings/:id/password等不同的路由。

  

如何使用Ember CLI创建嵌套路由?我找到了很多关于Ember的例子,但没有找到CLI。

1 个答案:

答案 0 :(得分:4)

更新:自v0.1.5起,Ember-CLI修复了未正确生成路由映射的问题。现在,运行以下命令应该会在router.js中生成正确的代码。它还为嵌套路由(而不是资源)添加了path选项。您可以看到更改日志here。看起来好像更改日志是当前该功能的唯一文档,但它们很容易理解。


现在,没有办法用Ember-CLI完全生成嵌套路由或资源(据我所知)。您可以让它为您生成文件,但您必须自己编辑router.js。例如,如果我运行以下行:

ember generate resource settings
ember generate route settings/overview

您将获得以下router.js

Router.map(function() {
    this.resource('settings', { path: 'settings/:settings_id' }, function() { });
    this.route('settings/overview');
});

这可能只是Blueprints目前工作方式的限制。如上所示,继续生成您的路线,然后手动修改router.js以嵌套路线呼叫,而不是使它们成为顶级路线:

Router.map(function() {
    this.resource('settings', { path: 'settings/:settings_id' }, function() {
        this.route('overview');
    });
});

此外,如果您想创建嵌套路由,而不是嵌套资源,我不确定是否有蓝图。我只会生成一个资源,然后手动将其更改为路径。