0

我有一个设置了一些路由的主干.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});

路由器触发两次:第一次 splat 等于“未定义”,然后第二次 splat 等于“更多”。

如果我注释掉路由 'a-route' : 'goToRoute',那么一切都可以通过 router.navigate('a-route/more') 正常工作......但我需要两条路线 - 有和没有 splat。

根据文档,我认为我的设置正确,有什么想法吗?

4

1 回答 1

0

您不需要使用 *,您必须使用 : 在您的情况下。

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