在Ember.js中创建一个带有动态段的嵌套路由

时间:2013-10-10 16:29:19

标签: ember.js emblem.js

我有一个嵌套的编辑路线,用于我的一个资源:

@resource 'organization', path: 'organizations/:organization_id', ->
  @resource 'organization.edit', path: '/edit'

我这样链接到它(使用Emblem.js):

linkTo 'organization.edit' organization | Edit

不幸的是,这导致了一个网址:

/organizations/4#

而不是预期的:

/organizations/4/edit

知道为什么会这样吗?我尝试了很多路由语法。删除path的{​​{1}}不会做任何事情,完整的organization.edit也是如此。

3 个答案:

答案 0 :(得分:1)

您应该能够通过使用这种类型的嵌套结构来获得所需的结果:

App.Router.map(function() {
  this.resource("organizations", function(){
    this.resource("organization", { path: "/:organization_id" }, function(){
      this.route("edit");
    });
  });
});

JSBin example

答案 1 :(得分:0)

你走在正确的轨道上但是@resource真正用于对象,例如组织。如果您要定义一个动作(而不是嵌套资源),您将需要使用@route,即:

@resource 'organization', path: 'organizations/:organization_id', ->
  @route 'edit'

我认为应该给你预期的行为/路线。

答案 2 :(得分:0)

为什么不使用这样的东西:

@resource 'organization', ->
  @route "edit",
    path: "/:organization_id/edit"