【问题标题】:EmberJS RC6 Router Catch AllEmberJS RC6 路由器包罗万象
【发布时间】:2013-07-29 04:16:59
【问题描述】:

我正在编写的应用程序使用 EmberJS 路由(使用 #)和普通的传统 HTML 锚点。这样做是有原因的,目前我无法避免使用普通锚。

我曾经在我的路由器映射中使用以下行。

this.route('catchAll', {path:"*:"});

在我更新到 RC6 并开始收到“未捕获的错误:没有名为...的路由”之前,上述方法一直有效

在当前版本的 Ember 中是否有一种新方法可以捕获所有内容?

【问题讨论】:

  • 确认@Daniel 发布的path: *: 解决方案在RC.6 中也适用于我。可能还涉及其他一些相关问题。

标签: ember.js ember-router


【解决方案1】:

看起来,如果您的哈希不以“/”开头,它们将不再起作用。我会说这是 rc6 路由器中的一个错误。

【讨论】:

  • 好像是这样,所有的anchor都需要以斜线开头。因此,与其说 index.php#goToAnchor,不如说 index.php#/goToAnchor
【解决方案2】:

在我看来,它似乎仍在工作。你介意给我看一个不工作的jsfiddle吗?

App.Router.map(function() {
  this.route('index', {path: '/'});
  this.route('catchAll', { path: '*:' });
  this.route('place', {path: '/place'});
});

jsfiddle of it working on RC6

它可能在其他地方失败吗?它是否在程序化 transitionTo 而不是 href 更改上失败?如果是这样,它可能与 machty 推入的新路由器有关,我们应该提交一个错误。

【讨论】:

  • 看来我们现在必须在锚名称前使用斜线。我修改了小提琴并删除了斜杠,我得到了同样的错误。 jsfiddle.net/codingepiphany/9shqV/6 我敢肯定这在过去 RC6 之前曾经工作过,因此我能够做到一目了然。
  • 谢谢。 {path: '*:'} 中的冒号很重要!
猜你喜欢
  • 2016-08-20
  • 2011-04-02
  • 2011-10-13
  • 2021-09-09
  • 1970-01-01
  • 2016-02-22
  • 2021-08-17
  • 2014-05-05
  • 1970-01-01
相关资源
最近更新 更多