9

我正在使用 Ember.js,如果用户导航到与资源不匹配的 URL,我想创建一个捕获所有路由以将用户发送回应用程序的根目录。(我正在使用历史 API)我已经这样实现了:

App.Router.map(function() {
    this.resource('things', function() {
        this.resource('thing', {path:':thing_id'}); 
    });
    this.route('catchAll', { path: ':*' });
    this.route('catchAll', { path: ':*/:*' });
    this.route('catchAll', { path: ':*/:*/:*' });
});

App.Router.reopen({
  location: 'history'
});

App.CatchAllRoute = Ember.Route.extend({ 
    redirect: function() {
        this.transitionTo('index'); 
    }
});

App.IndexRoute = Ember.Route.extend({ 

});

我的问题是:无论路径中的段数如何,我是否可以定义一个匹配任何尚未解析为资源的路径的全部路径?

我正在使用 Ember.VERSION :1.0.0-rc.1

4

1 回答 1

22

经过一番摆弄后,我想我找到了解决方案:*:似乎可以解决问题,例如

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

我设置了这个小提琴来演示它是如何工作的。

于 2013-02-26T20:24:46.707 回答