我可以在创建视图的模型中收听骨干视图的变化吗?

Posted

技术标签:

【中文标题】我可以在创建视图的模型中收听骨干视图的变化吗?【英文标题】:can I listen to bacbone view changes in a model where the view was created? 【发布时间】:2013-06-05 15:40:25 【问题描述】:

我的骨干有问题,我是骨干新手,所以我想在这里寻求帮助。我正在编写一个单页应用程序,我需要从模型中监听视图的变化。

// 我有这个模型,我在其中创建了名为 Window 的视图(使用 require.js),我想听一下我的视图中的变化,但我无法实现。我在 Window.view 中有变量,例如:显示。而且我需要知道显示的更改是否为假。有没有办法让它发生?

var Initialize = Backbone.Model.extend(
        initialize: function()
            var SystemInfoWindow = new Window(this.toJSON());

            // 

        
    );

【问题讨论】:

【参考方案1】:

你不能监听视图属性的变化,你只能监听模型属性的变化(感谢listenToon等方法)。但是,您可以做的是将您的视图绑定到具有所需属性的某个模型,以便您可以收听它。例如:

var Initialize = Backbone.Model.extend(
  defaults: 
    shown: false
  ,  
  initialize: function() 
    var SystemInfoWindow = new Window(model: this);

    // and then
    someObject.listenTo(this, 'change:shown', someObject.someListener);
  
);

【讨论】:

感谢您快速而有用的回答。我可以使它与您的解决方案一起使用。谢谢你:)

以上是关于我可以在创建视图的模型中收听骨干视图的变化吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Backbone.js 的显示视图中嵌套创建视图

骨干:视图不更新(重置事件)

带有requirejs的骨干 - 传递给视图时“模型未定义”

骨干路由器,视图和模型合作

骨干局部视图未渲染最新模型

Kendo UI - 您可以将视图模型创建为函数吗