我现在有点困惑。我的路由函数在第一次加载时执行,这在我的情况下并不好,因为我正在使用这些函数渲染内容并且在第一次加载时我得到了重复的内容......好的,我可以添加控制变量防止在第一次初始化时渲染,但我想用纯主干来做......这是我的代码:
var Router = Backbone.Router.extend({
routes: {
"": "home",
"home": "home",
"about": "about",
},
home: function(){
getContent("home")
},
about: function(){
getContent("about")
},
initialize: function(){
Backbone.history = Backbone.history || new Backbone.History({silent:true});
root = "kitchenV3/"+lang;
var enablePushState = true;
var pushState = !! (enablePushState && window.history && window.history.pushState);
Backbone.history.start({
silent: true,
pushState: pushState,
root: root
});
}
});
另一方面,如果我删除 ,,home" 和 ,,about" 方法并以这种方式编写它们,它们不会在第一次加载时执行。但这两者之间的实际区别是什么?是否可以像第一个示例那样编写代码,但要防止在第一次加载时执行?
router.on('route:home', function(id) {
getContent("home")
});
谢谢大家的回答...