1

我想用 Backbone.Marionette 创建一个复杂的表单。我认为表格应该是这样的:

形式

产品或付款的任何变化都应影响“销售”模式。模型结构为:

sale   :   {
    date        :             '10/01/2010',
    customer    :             'Jaime Rivera'
    products    :             [{product_name:'ZZZZZZ', price: 100, quantity: 2},
                               {product_name:'yyyyyy', price: 33, quantity: 1}],
    payments    :             [{type:'check', other_data: '', amount: 160},
                               {type:'credit-card', other_data: '', amount: 73}] 
}

我想知道构建视图以创建表单的最佳方法。我不确定我是否应该使用布局、复合视图或集合视图。

4

1 回答 1

4

有多种方法可以让 Marionette 的观点发挥作用,而且它们都不一定是对或错。有些会更好地满足您的其他约束,例如需要使用哪些数据来呈现它,需要处理哪些事件等。

但是,鉴于您显示的数据,这看起来像一个具有两个 CompositeView 的布局。

布局将呈现日期选择器、输入框和两个用于产品和付款的空 div。这些空 div 中的每一个都将在布局中关联一个区域定义,因此您可以显示产品和付款。

然后,您可以拥有产品的 CompositeView - 一个呈现产品列表和“添加产品”按钮的模板。CompositeView 本身将处理 Add Product 按钮的单击。将指定一个 ItemView 来呈现列表中的每个产品。

付款方式与产品相同。

...再次,这只是使其工作的一种选择。您可以使用一个 Layout 和 2 个 Collection 视图来完成整个事情,或者将整个事情作为单个 ItemView 来完成(这将很难维护,但仍然可能)。

希望有帮助。

于 2012-09-09T12:53:50.237 回答