我正在开发一个包含多条路由的Backbone Application。我想修改我的changePage函数并使其将哈希作为参数,当它被调用时,它会根据该URL更改页面。
这是我的路由器
-Infinity
这是第一个观点:
define([" jquery"," backbone"," text!../../ pages / login.html"],function($, Backbone,loginTpl){
define(["jquery","backbone",'views/header'], function( $, Backbone, Header) {
var ApplicationRouter = Backbone.Router.extend({
_header: null,
routes: {
"": "login",
"home": "home",
},
initialize: function() {
this.firstPage = true;
this.fromBack = false;
i18n.currentLocal = localStorage.getItem("currentLocal") || 'en';
Backbone.history.start();
},
login: function() {
var self = this;
require(['views/loginPageView'], function(loginView){
self.changePage(new loginView(),true);
});
},
home: function() {
var self = this;
require(['views/homePageView'], function(homeView){
self.changePage(new homeView(),false);
});
},
changePage: function (page,noPanel) {
var deferred = $.Deferred();
$page = $(page.el);
$page.attr('data-role', 'page');
console.log(this.firstPage);
if(this.firstPage){
$('#pageContent').append($page);
page.render();
if(!noPanel){
self._header = new Header({parent: $("#header")});
}
}
else{
$('#pageContent').html($page);
$("#header").empty();
page.render();
}
if (this.firstPage) {
this.firstPage = false;
}
deferred.resolve();
return deferred;
},
});
return ApplicationRouter;
})
});
因此,我想使用router.changePage(' home.html'),而不是使用router.navigate,这会导致路由器中的错误导致一些问题。 并根据我加载到各个View的URL。 谢谢