首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EmberJS路由:从父路由创建子路由

EmberJS路由:从父路由创建子路由
EN

Stack Overflow用户
提问于 2012-07-17 11:19:50
回答 1查看 697关注 0票数 0

我正在尝试创建一个路由,以便在父实体上添加子实体。我的路由器看起来像这样。我在父母的节目中有一条嵌套的路线,我很确定这是错误的。这样做似乎会阻止页面转换之间的URL更改,并且当我从父模板通过{{action doAddChild href=true}}导航到addChild路由时,URL中的:parent_id未定义。我猜这是因为我没有在应该是父级的动作上设置上下文,但是我从哪里得到它呢?

实现这一目标的最好方法是什么?我显然找错人了.

代码语言:javascript
复制
App.Router = Ember.Router.extend
    enableLogging: true
    root: Ember.Route.extend
        index: Ember.Route.extend
            route: "/"
        parents: Ember.Route.extend
            route: "/parents"
            doShow: Ember.Route.transitionTo('show')
            index: Ember.Route.extend
                route: "/"
                connectOutlets: (router) ->
                    router.get("applicationController").connectOutlet "parents"
            show: Ember.Route.extend
                route: "/:parent_id"
                doAddChild: Ember.Route.transitionTo('addChild')
                modelType: App.Parent
                connectOutlets: (router, parent) ->
                    router.get("applicationController").connectOutlet "parent", parent
                addChild: Ember.Route.extend
                    route: "/addChild"
                    connectOutlets: (router) ->
                        router.get("applicationController").connectOutlet "addChild"
EN

回答 1

Stack Overflow用户

发布于 2012-07-17 15:33:32

你的第一个问题是你的展示路线。正如您所说的,它不会转换,这是因为路由器只能正确地转换到叶节点。当前的答案是添加一个虚拟索引路由。

代码语言:javascript
复制
Router = Ember.Router.extend
    enableLogging: true
    root: Ember.Route.extend
        index: Ember.Route.extend
            route: "/"
        parents: Ember.Route.extend
            route: "/parents"
            doShow: Ember.Route.transitionTo('show.index')
            index: Ember.Route.extend
                route: "/"
                connectOutlets: (router) ->
                    router.get("applicationController").connectOutlet "parents"
            show: Ember.Route.extend
                route: "/:parent_id"
                doAddChild: Ember.Route.transitionTo('addChild')
                connectOutlets: (router, parent) ->
                    router.get("applicationController").connectOutlet "parent", parent
                index: Ember.Route.extend
                    route: "/"
                addChild: Ember.Route.extend
                    route: "/addChild"
                    connectOutlets: (router) ->
                        router.get("applicationController").connectOutlet "addChild"

祈祷它也能解决其他所有问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11515572

复制
相关文章

相似问题

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