【问题标题】:Referencing Backbone views from app view从应用视图引用主干视图
【发布时间】:2013-01-10 21:59:02
【问题描述】:

大家好,我对 Backbone 还是很陌生,尽管我已经花了几天时间来尝试熟悉这个框架,而且似乎每次我开始感到舒服时都会遇到一个新问题。

我想知道如何引用从我的主 appview 中呈现的视图。我知道这是一个非常简单的问题,但我似乎无法弄清楚。

例如,我有一个简单的视图

    var SubView = Backbone.View.extend({
    //something here including render function
});

然后我从主应用视图中呈现该视图

var myApp = Backbone.View.extend({
    render: function{
        var mysubView = new SubView();
        mysubView.render();
    },
    editSomething: function{
        mysubView.remove();
    }
});

当我尝试从应用程序主视图中的函数 (editSomething:) 引用该视图时,出现引用错误。

我想要实现的是我有两个包含表单的视图。我想在调用编辑函数和调用添加函数时在两种表单之间切换。但我似乎无法访问已经呈现的视图。

我不想在删除现有视图之前初始化和渲染新视图,因为据我了解,我将开始让一堆视图漂浮在内存中。

【问题讨论】:

    标签: javascript backbone.js backbone-views


    【解决方案1】:

    使用this引用它:

    var myApp = Backbone.View.extend({
        render: function{
            this.subView = new SubView();
            this.subView.render();
        },
        editSomething: function{
            this.subView.remove();
        }
    });
    

    【讨论】:

    • 感谢您的快速回答。我已经尝试过这个解决方案,但我仍然得到:TypeError: Result of expression 'this.subView' [undefined] is not an object。
    • 你能用更完整的代码更新原始问题吗?错误在于您如何注册事件。我很乐意为您提供帮助。
    • 没关系。你的回答是正确的。我没有用 this.subview = new SubView(); 初始化视图一旦我这样做了,它就起作用了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    相关资源
    最近更新 更多