0

次のように、いくつかのルートを使用して backbone.js ルーターをセットアップしています。

routes : {
  'a-route' : 'goToRoute',
  'a-route/*splat' : 'goToRoute'
}

goToRoute : function(splat){
if(!splat) {
  // do this
} else {
  // do that with splat
}

私がするとき

router.navigate('a-route', {trigger : true});

すべてがうまく機能します。しかし、私がするとき

router.navigate('a-route/more', {trigger : true});

ルーターは 2 回起動しています。最初は 'undefined' に等しいスプラットで、次に 'more' に等しいスプラットで 2 回目です。

ルート 'a-route' : 'goToRoute' をコメント アウトすると、すべてが router.navigate('a-route/more') で正常に機能します ... しかし、スプラットありとなしの両方のルートが必要です。

ドキュメントによると、私はこれを正しく設定していると思いますが、何かアイデアはありますか?

4

1 に答える 1

0

* を使用する必要はありません。この場合は : を使用する必要があります。

routes : {
  'a-route' : 'goToRoute',
  'a-route/:splat' : 'goToRoute'
}
于 2012-07-03T13:37:49.597 に答える