在我的应用中..
当我加载页面或刷新页面时,我的路由器没有正确响应并调用默认的视图方法。如果我使用其他链接来访问其他哈希网址...也可以使后退按钮正常工作。
即使在我加载页面时,我的启动功能也能正常工作。但是当我加载页面并使用浏览器的后退按钮时,默认方法不会触发。
是什么导致这个......这是我的代码:
define([
"backbone",
"../model/model",
"../collection/collection",
"../views/appView",
"../views/listView",
"../views/appViews"],
function(Backbone,appModel,collection,appView,listView,appViews){
var appRouter = Backbone.Router.extend({
routes:{
"":"defaultView",
"list":"listAItem",
"add":"listViewIt"
},
initialize:function(){
console.log("initiated....."); //works properly
},
defaultView:function(){
new appViews(); // not working..
},
listAItem:function(){
console.log("from listAItem");
// on click and using back button woks fine
},
listViewIt:function(){
new listView();
// on click and using back button woks fine
}
});
Backbone.history.start(); // removed and updated to where i call my app...
return appRouter;
})
现在我更新了我的Backbone.history以在启动我的应用程序后调用..现在我的初始方法(称为defual视图)但仍然在我的浏览器中使用我的后退/字体按钮不工作..但重置工作正常。
如何修复它..
这是我更新的代码:
$.when.apply(null,requests).done(function(){
var app = new router();
//on refresh works, but not working while use back / front button of browser use.
Backbone.history.start();
});
答案 0 :(得分:0)
它有效......
我错误地将其他视图设置为删除了初始元素。现在我意识到了。现在工作正常。谢谢所有人..
更新代码:
this.$el.find("ul").html("<h1>New html has to come here</h1>");
错误的是:
this.$el.html("<h1>New html has to come here</h1>");