Catch-all路线在ember中优先于星际路线

时间:2013-10-09 21:56:10

标签: ember.js ember-router

我有一条路线捕捉所有缺失的路线并呈现404风格的网页。我想创建一个匹配任何URL的路径以“/ browse /”开头,例如“/ browse / shoes / red”。这似乎是正确的方法:

App.Router.map(function() {
  this.route('browse', { path: '/browse/*fields' });
  this.route('missing', { path: '/*badPath' });
});

然而,ember的RouteRecognizer总是在浏览路线上选择丢失的路线。 (执行此操作的逻辑在route-recognizer.js的sortSolutions中。)这是Ember中的错误吗?有没有正确的方法来使用glob路由并仍然有404处理程序?

顺便说一句,我可以创建一个浏览资源,而不是像这样的路线:

App.Router.map(function() {
  this.resource('browse', { path: '/browse' }, function() {
    this.route('baz', {path: '/*'});
  });
  this.route('missing', { path: '*' });
});

这仍有同样的问题。

1 个答案:

答案 0 :(得分:1)

我认为这一定是个错误...

这是一个JSBin:http://jsbin.com/ucanam/1403/edit

在这里你可以看到它按预期直接进入'缺失'路线:

http://jsbin.com/ucanam/1403#/some/random/stuff

尝试直接进入“浏览”路线失败:

http://jsbin.com/ucanam/1403#/browse/test/stuff