Backbone route _extractParameters capturing an extra null parameter
我的主干路由器中有以下路由:
1 | 'surveys/:surveyId?:opts': 'SurveyList:Selected' |
以下处理程序捕获任何路由并将其重新发布到消息总线上以供我的视图处理:
1 2 3 4 5 6 | this.on('route', function() { PubSub.publish(Events.RouteChanged, { route: arguments[0], options: arguments[1] }); }); |
当路由器匹配路由
有趣的是,当路由为
这是一个显示实际问题的小提琴。
这是 Backbone 从我的路由创建的正则表达式的问题,还是路由本身的问题?
我想我刚刚找到了答案。看起来 Backbone 已经做了我想做的事情。如果我有路由
1 | /^surveys(?:\\?([\\s\\S]*))?$/i |
这似乎已经匹配查询字符串参数,这解释了为什么较短的路线在我上面的示例中有效。 Backbone 的那些聪明人比我领先一步。
更新:
来自 Backbone v1.1.1 更改日志:
Backbone Routers now handle query params in route fragments, passing
them into the handler as the last argument. Routes specified as
strings should no longer include the query string ('foo?:query' should
be 'foo').