[英]Controling Views with router, backbone.js
我的bone.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);
尝试更改顺序:
var appRouter = new AppRouter;
app = new App();
Backbone.history.start();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.