2
我的一个路由器处理程序会持续触发两次。虽然我可以清楚地看到路由触发器只被触发一次。我使用的木偶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)的路由,那么同一个方法会触发一次,并使用它两次。