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 に答える