我写了一个带有路由器的小 .js 文件。它应该可用于不同的目的,因此您可以在 init 上传递所需的回调(路由)。init 接受一个参数 routes (一个数组),其中包含以下信息:
routeId:"book/:id",
routeName:"routeBooks",
routeCallback: $.proxy(function(id){
// $.proxy() is a jQuery function that ensures you call the callback in the right context
// do fandy stuff here.
})
要解析路线,我使用以下内容:
for( route in routes ){
routesFromConfig[routes[route].routeId.toString()] = routes[route].routeName;
}
var ModalRouter = Backbone.Router.extend({
routes:routesFromConfig
});
router = new ModalRouter();
for( route in routes ){
// test if the callback is a function
if(_.isFunction(routes[route].routeCallback)){
router.on('route:'+routes[route].routeName.toString(), routes[route].routeCallback);
}
}
Backbone.history.start();
我希望这有助于从您的应用程序中其他地方传递的路由设置路由器