我想用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}]
}
我想知道构建视图以创建表单的最佳方法。我不确定我是否应该使用layout,compositeview或collectionview。
答案 0 :(得分:4)
使用Marionette的观点有多种方法可以实现这一点,而且这些观点都不一定是正确的或错误的。有些会更好地适应您的其他约束,例如需要使用哪些数据来呈现它,需要处理哪些事件等等。
考虑到您显示的数据,这看起来像是一个带有两个CompositeView的布局。
布局将呈现日期选择器,输入框和两个用于产品和付款的空div。这些空div中的每一个都会在布局中关联一个区域定义,因此您可以显示产品和付款。
然后,您可以拥有一个CompositeView for products - 一个呈现产品列表和Add Product按钮的模板。 CompositeView本身将处理Add Product按钮单击。将指定ItemView以呈现列表中的每个产品。
付款方式与产品相同。
...再一次,这只是让它发挥作用的一个选择。你可以使用一个Layout和2个Collection视图完成整个事情,或者将整个事物作为单个ItemView(这很难维护,但仍然可能)。
希望有所帮助。