我的backbone.js 应用程序有问题,我想控制使用主干路由器渲染哪个subviev,但我一直遇到命名空间问题。我收到“未捕获的 ReferenceError:未定义应用程序”错误,并且我尝试过的所有其他解决方案都没有成功。使用路由器控制视图可能有更好的解决方案,但我尝试了其他解决方案 3 小时但没有成功。我希望你能帮助我。
这是我的代码:
(function($){
var App = Backbone.View.extend({
el: $('body'),
initialize: function () {
_.bindAll(this, 'render');
this.mainApp = new LoginApp();
this.render();
},
render: function(){
$(this.el).append(this.mainApp.render().$el);
},
setmainApp: function(mApp) {
this.mainApp = mApp;
}
});
var LoginApp =Backbone.View.extend({
initialize: function () {
_.bindAll(this, 'render');
},
render: function() {
$(this.el).append("<h1>Hello World</h1>");
return this;
}
});
var RegisterApp =Backbone.View.extend({
initialize: function () {
_.bindAll(this, 'render');
},
render: function() {
$(this.el).append("<h1>Hello World2</h1>");
return this;
}
});
//Router
var AppRouter =Backbone.Router.extend({
routes : {
"login" : "login",
"register": "register",
'*path': 'defaultRoute'
},
login: function() {
//Problem
app.setmainApp(new LoginApp);
app.render();
},
register: function() {
app.setmainApp(new RegisterApp);
app.render();
},
defaultRoute: function() {
app.setmainApp(new LoginApp);
app.render();
}
});
var appRouter = new AppRouter;
Backbone.history.start();
app = new App();
})(jQuery);