Marionette AppRouter在路线参数中包含“/”字符

时间:2015-09-30 22:55:05

标签: javascript backbone.js marionette single-page-application

我如何才能实现上述目标?例如,如果用户导航到此URL:

app.com/#search/test.com/index.html

将此路由器设置在控制器中以捕获它:

var searchRouter = new Marionette.AppRouter({
  controller: searchController,
  appRoutes: {
    'search': 'init',
    'search/:term': 'search'
  }
});

search如何传递term包含/以及随后的所有内容?在我目前的测试中,当搜索词包含/时,似乎根本没有调用此路由。

1 个答案:

答案 0 :(得分:0)

路由匹配有时很难,调试很麻烦,到目前为止我遇到了很多问题。

所以我想建议你别的东西:

只有一条路线可以涵盖这两种情况并路由到听众内部的initsearch

appRoutes: {
  'search(/:term)': 'searchListener'
},

searchListener: function(term) {
  if (!term) this.init();
  else this.search(term);
}

这更多只是为了表达这个想法,随意让它变得更好。我希望这种方法能解决你的问题。