【发布时间】:2015-04-02 00:37:00
【问题描述】:
我的一个路由器处理程序持续触发两次。虽然我可以清楚地看到路由触发器只触发了一次。我正在使用这样的 Marionette AppRouter 类:
MainRouter = Backbone.Marionette.AppRouter.extend({
appRoutes: {
"home": "showHome",
"view/:num(/:rev)(/:ms)": "viewSmart", //smart route
"*route": "showHome" //any other unrecognized routes
},
controller: routesController
});
和带有处理程序的控制器:
routesController = {
showHome: function () {
console.info('go home');
},
viewSmart: function (num, rev, ms) {
console.log('view route action triggered');
},...more routes
在测试此异常时,我发现 viewSmart 方法中的最后一个可选参数是根本原因。如果我导航到没有 (/:ms) 的路线,则相同的方法会触发一次,然后触发两次。
【问题讨论】:
标签: javascript backbone.js marionette