2012-09-03 55 views
1

我想用Backbone.Marionette创建复杂的表单。我认为形式应该是这样的:使用Marionette创建复杂视图(表单)

Form

产品或支付任何变化应该不会影响“销售”的模式。该模型的结构是:

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}] 
} 

我想知道结构视图创建窗体的最佳方式。我不确定我是否应该使用layout,compositeview或collectionview。

回答

4

有多种方式,以与木偶的意见这项工作,和他们都不是正确或错误的必然。有些人会更好地为您的其他限制,如需要被用来渲染这个什么数据,进行处理所需要的事件等

既然你已经显示的数据,虽然,这看起来像一个布局两个CompositeViews。

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

然后,您可以对产品CompositeView中 - 呈现的产品和增加产品按钮列表中选择模板。 CompositeView本身会处理添加产品按钮点击。将指定一个ItemView来呈现列表中的每个产品。

付款将以与产品相同的方式完成。

...再次,这只是一个为使其工作选项。你可以用一个布局和2个集合视图来完成整个事情,或者整个事物作为一个单一的ItemView(这将很难维护,但仍然可能)。

希望有所帮助。