繁体   English   中英

使用路由器,brian.js控制视图

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM