我正在尝试创建一个路由,以便在父实体上添加子实体。我的路由器看起来像这样。我在父母的节目中有一条嵌套的路线,我很确定这是错误的。这样做似乎会阻止页面转换之间的URL更改,并且当我从父模板通过{{action doAddChild href=true}}导航到addChild路由时,URL中的:parent_id未定义。我猜这是因为我没有在应该是父级的动作上设置上下文,但是我从哪里得到它呢?
实现这一目标的最好方法是什么?我显然找错人了.
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"发布于 2012-07-17 15:33:32
你的第一个问题是你的展示路线。正如您所说的,它不会转换,这是因为路由器只能正确地转换到叶节点。当前的答案是添加一个虚拟索引路由。
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"祈祷它也能解决其他所有问题。
https://stackoverflow.com/questions/11515572
复制相似问题