在我的主干应用程序中,我使用requirejs
加载 js 文件。我也需要不同的视图,我的下拉菜单中没有链接。根据下拉菜单添加#url
示例:
http://localhost:85/bino/html/interface-I.html#projectName/project11
导航方法可以正常工作并更新 url,每当我将此 url 复制并粘贴到任何其他浏览器/使用当前哈希状态刷新时,我的router
方法都可以正常工作。
但是单击下拉菜单中的链接不起作用,方法没有调用...是什么原因,我该如何解决这个问题..?
我的代码:主 js 文件(部分代码)
var extender = _.extend({},backBone.Events);
var params ={
boardHolder :$('.boardHolder'),
column :3,
space :30,
extender :extender
};
var listApp = new routerer(params);
backBone.history.start();
extender.bind("list:selected",function(post){
listApp.navigate(post.category+'/'+post.filter);
});
我的路由器代码:
define(["backBone","singleton","listCollection","listView","listViews"],function(Backbone,singleton,listCollection,listView,listViews){
singleton.router = Backbone.Router.extend({
routes:{
"" :"appView",
"post" :"postView",
"projectName/:id" :"projectNameView",
"assignedTo/:id" :"assignedToView",
"sortBy/:id" :"sortByView"
},
initialize:function(params){
this.params = params;
this.collection = new listCollection;
console.log('i am called');
},
hashView:function(){
console.log('from hash view');
},
appView:function(){
var that = this;
// var defaultApp = new listCollection();
this.collection.fetch({
success:function(data){
new listViews({model:data,params:that.params})
}
})
},
projectNameView:function(thisView){ // not calling not sync
console.log('called',thisView); // on click not works
},
assignedToView:function(thisView){ // not calling not sync
console.log(thisView); // on click not works
},
sortByView:function(thisView){ // not calling not sync
console.log(thisView); // on click not works
}
});
return singleton.router;
})
提前致谢。