【问题标题】:Router only works one level deep and not on root路由器只工作一层深,而不是根
【发布时间】:2012-06-06 17:33:03
【问题描述】:

我正在尝试升级我的代码以使用来自 emberjs master 的路由器,而不是依赖 ember-routemanager。我的代码主要基于 https://gist.github.com/2728699 。我创建了一个小提琴来展示我在 http://fiddle.jshell.net/pszvJ/19/show/#/posts 上谈论的内容

当我点击“测试评论路线”和“测试评论显示”时。我从来没有得到我应该拥有的 console.log,但它适用于两个“帖子”操作。

当我尝试直接到达 /.我得到一个“找不到路径 / 的状态”,即使 / 应该是我打印主入口点的根元素。事实上,主入口点已被记录,但之后又失败了。

感谢您的帮助

【问题讨论】:

    标签: ember.js ember-old-router


    【解决方案1】:

    根据你的小提琴,你的路由器有状态:

    • root.posts.index (#/posts)
    • root.posts.show (#/posts/42)
    • root.posts.cmets.index (#/posts/cmets)
    • root.posts.cmets.show (#/posts/cmets/42)

    如果要处理 #/posts/42/cmets/1 之类的 url,“cmets”状态必须嵌套到“posts.show”状态中。

    而且你不能直接到达“/”,因为你没有为那个 url 定义任何状态。

    this fiddle

    【讨论】:

    • 谢谢!有用。但是,我决定将帖子放在 root.index 中,以便始终执行来自 root.index 的 connectOutlets。由于我进行了此更改,因此出现错误找不到路径状态。问题在这里可见:fiddle.jshell.net/DHN2u/5 我尝试在 routePath 函数中添加断点,但它似乎返回了一个状态。
    • 我不明白你想要达到什么目的。 ConnectOutlet 的目的是创建一个视图并将其连接到控制器和把手 {{outlet}}。为什么要“一直”这样做?您可能会发现有用的信息here
    • 我想要一个结构,我必须绝对有以前的结果。在根目录下,我想初始化视图。在帖子索引中,我想显示可用的帖子。在帖子显示中,我想显示一个帖子,但我也希望显示帖子列表。想象一下,您有一个带有帖子列表的左侧面板,当我们选择一个帖子时,我们在右侧有详细信息。这就是为什么我希望我的 post.show 依赖于 post.index 以便即使直接获取帖子也可以始终拥有帖子列表。顺便说一句,谢谢你的链接。这是迄今为止我见过的最好的例子。
    猜你喜欢
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 2017-06-28
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多