我試圖讓我的路由器決定顯示一個登錄只有家庭觀點,否則登錄視圖或registerview。無法路由邏輯我的意見從骨幹路由器
我的應用程序在最初的localhost:8080/indexapp。
我加載它在數據主文件。但是我認爲,並沒有觸發做出這一決定的行動與路線相關。
是否有可能在加載的頁面上有一個路由器來觸發路由。
另外,我有一條註釋爲this.loginModel.fetch();
的行,它導致undefined不是函數錯誤。
define([
'jquery',
'ratchet',
'underscore',
'backbone',
'login/loginview',
'login/loginmodel',
'register/registerview',
'home/homeview',
],
function($, Ratchet, _, Backbone, LoginModel, LoginView, RegisterView, HomeView){
var MainRouter = Backbone.Router.extend({
routes: {
"": "showHome",
//"/": "showHome",
"login": "showLogin",
"register": "showRegister"
},
initialize: function(){
Backbone.history.navigate("home", {trigger:true})
},
showHome: function(){
//var self = this, loginModel = new LoginModel();
this.loginModel = new LoginModel();
//this.loginModel.fetch();
if(this.loginModel.get('loginp') == true){
this.homeView = new HomeView();
this.homeView.render();
}
else {
Backbone.history.navigate("/login", {trigger:true})
}
/*
this.loginModel.fetch({
success: function(model){
if(model.get('loginp') == true){ //show you app view for logged in users!
this.homeView = new HomeView();
this.homeView.render();
}
else { //not logged in!
Backbone.history.navigate("/login", {trigger:true})
}
},
});
*/
},
showLogin: function(){ //display your login view
this.loginView = new LoginView;
//this.loginView.fetch();
this.loginView.render();
},
showRegister: function(){ //display your register view
this.registerView = new RegisterView;
//this.registerView.fetch();
this.registerView.render();
},
});
return MainRouter;
});
loginmodel:
define([
'underscore',
'backbone',
],
function(_, Backbone) {
var LoginModel = Backbone.Model.extend({
urlRoot: '/login',
initialize: function(){
this.fetch();
},
defaults: {
username: null,
},
});
return LoginModel;
});
loginview:
define([
'jquery',
'ratchet',
'underscore',
'backbone',
'login/loginmodel',
'text!login/logintemplate.html',
],
function($, Ratchet, _, Backbone, LoginModel, LoginTemplate){
var LoginView = Backbone.View.extend({
el: $('body'),
model: new LoginModel,
/*
initialize: function(){
this.model = new LoginModel;
},
*/
template: _.template(LoginTemplate),
render: function(){ //display your login view
this.$el.html(template(this.model.attributes));
},
});
return LoginView;
});
上面的問題是我的,我正在考慮刪除它。因爲這個問題起源於loginview依賴性的錯誤順序。我應該刪除它嗎?或者回答。 – 2014-10-16 14:50:04