【问题标题】:Using multiple models and collections in Marionette/Backbone view在 Marionette/Backbone 视图中使用多个模型和集合
【发布时间】:2014-02-06 15:52:07
【问题描述】:

我不确定这里的正确方法是什么。我正在设置一个简单的表格。我需要几个标准的 HTML 输入字段和几个选择输入。数据来自几个不同的来源,我想展示模型和集合,以及它们的数据到视图中,如下所示:

控制器:

var registerView = new registrationView.RegistrationForm({  
    model: userModel,  
    model2: departmentCollection  
});
myApp.SomeRegion.show(registerView);

我可以这样做吗?或者我是否需要将表单拆分为单独的区域,所有区域都有自己的模型或集合。如果是这样,我如何调用模板中的模型数据。到目前为止,我还不能让它工作。我找不到任何包含来自不同模型和集合的混合字段的表单示例,

非常感谢

维特纳

【问题讨论】:

    标签: backbone.js marionette backbone-views backbone-model


    【解决方案1】:

    您可以使用复合视图来做到这一点:

    var registrationView.RegistrationForm = Marionette.CompositeView({
       // ...
    });
    
    var my View = new registrationView.RegistrationForm({  
        model: userModel,  
        collection: departmentCollection  
    });
    

    参见https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.compositeview.mdhttps://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.collectionview.md(复合视图从集合视图继承行为)。

    【讨论】:

    • 谢谢大卫。我从你这本优秀的书中学到了很多东西 :-) 但是,我不知道这是“矫枉过正”还是解决这个问题的最佳方法。因此,如果我有一个带有多个选择输入的表单,正确的模式是划分页面(可能带有布局)并使用具有单独视图的不同区域,每个区域都有各自的模型/集合来创建单个表单?
    • 这是我的偏好:cde 稍微多一点,但维护起来更简单。但如果您愿意,也可以在单个视图中执行此操作。它基本上归结为偏好......
    猜你喜欢
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多