首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ember.js中的动态段创建嵌套路由

使用Ember.js中的动态段创建嵌套路由
EN

Stack Overflow用户
提问于 2013-10-10 16:29:19
回答 3查看 387关注 0票数 1

对于我的资源之一,我有一个嵌套的编辑路由:

代码语言:javascript
复制
@resource 'organization', path: 'organizations/:organization_id', ->
  @resource 'organization.edit', path: '/edit'

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

代码语言:javascript
复制
linkTo 'organization.edit' organization | Edit

不幸的是,这样做的结果是:

代码语言:javascript
复制
/organizations/4#

而不是预期的:

代码语言:javascript
复制
/organizations/4/edit

知道为什么会这样吗?我对路由语法做了很多实验。删除pathorganization.edit没有任何作用,完整的path: 'organization/:organization_id/edit也一样。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-10 17:54:38

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

代码语言:javascript
复制
App.Router.map(function() {
  this.resource("organizations", function(){
    this.resource("organization", { path: "/:organization_id" }, function(){
      this.route("edit");
    });
  });
});

JSBin实例

票数 1
EN

Stack Overflow用户

发布于 2013-10-10 16:59:02

您正处于正确的轨道上,但是@resource实际上是针对对象的,例如组织。如果要定义一个操作(而不是嵌套资源),则需要使用@route,即:

代码语言:javascript
复制
@resource 'organization', path: 'organizations/:organization_id', ->
  @route 'edit'

我相信这会给你预期的行为/路线。

票数 0
EN

Stack Overflow用户

发布于 2014-03-15 16:31:41

为什么不用这样的方法:

代码语言:javascript
复制
@resource 'organization', ->
  @route "edit",
    path: "/:organization_id/edit"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19301299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档