【问题标题】:Does a Backbone View always require a Backbone Model?主干视图是否总是需要主干模型?
【发布时间】:2012-12-04 16:55:53
【问题描述】:

我正在学习 Backbone。

我想知道 Backbone 视图是否总是需要 Backbone 模型。

例如,假设我有一个包含两个子面板的面板。我的结构方式是使用主面板的父视图,然后是子面板的两个子视图...

    var OuterPanel = Backbone.View.extend({
        initialize: function() {
            this.innerPanelA = new InnerPanelA(innerPanelAModel);
            this.innerPanelB = new InnerPanelB(innerPanelBModel);
        },
    });

    var outerPanel = new OuterPanel();

父视图实际上只是一个容器。它可能有一些控件,但没有需要持久化的数据。这是正确的方法吗?还是这是不好的做法?

谢谢(提前)为您提供帮助

【问题讨论】:

    标签: javascript backbone.js


    【解决方案1】:

    如Backbone.View docs中所说

    主干视图几乎比代码更具约定性——它们 不要为您确定有关您的 HTML 或 CSS 的任何内容,并且可以 与任何 JavaScript 模板库一起使用。

    换句话说,如果您没有模型,请不要使用模型。另一方面,我会将子模型作为选项注入到外部视图实例中,而不依赖于全局变量,如下所示:

    var OuterPanel = Backbone.View.extend({
        initialize: function(options) {
            this.innerPanelA = new InnerPanelA({model: options.modelA});
            this.innerPanelB = new InnerPanelB({model: options.modelB});
        }
    });
    
    var outerPanel = new OuterPanel({
        modelA: innerPanelAModel,
        modelB: innerPanelBModel
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 2013-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多