我是Backbone.js的新手,并没有完全理解某些类型的路由器实现之间的区别。
1。类型:
var Workspace = Backbone.Router.extend({
routes:{
'*filter': 'setFilter'
},
setFilter: function( param ) {
// Set the current filter to be used
Common.TodoFilter = param.trim() || '';
// Trigger a collection filter event, causing hiding/unhiding
// of the Todo view items
Todos.trigger('filter');
}
});
2。类型:
var AppRouter = Backbone.Router.extend({
routes: {
// default
'*actions': 'defaultAction'
}
});
var initialize = function() {
var router = new AppRouter();
router.on('route:defaultAction', function(actions) {
var homeView = new HomeView();
homeView.render();
});
Backbone.history.start();
};
return {
initialize: initialize
};
那么,类型1中的普通回调(setFilter)和函数router.on(' route:defaultAction',function(actions)?
之间有什么区别?答案 0 :(得分:1)
来自Backbone Catalog of Events:
“route:[name]”(params) - 在匹配特定路由时由路由器触发。
因此router.on('route:defaultAction'...
方式绑定到路由器每次匹配路由时触发的事件。路由器本身不需要回调,但路由必须在routes-hash或route -function调用中定义。
第一种方法是使用the routes
-object将路由与功能匹配的最基本方法。
路由哈希将带有参数的URL映射到路由器上的函数
希望这有帮助!