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

フォームを作成するためにビューを構造化するための最良の方法を知りたいです。レイアウト、compositeview、collectionviewのどれを使うべきかわかりません。

4

1 に答える 1

4

マリオネットの見解でこれを機能させる方法は複数ありますが、必ずしも正しいか間違っているかはわかりません。これをレンダリングするためにどのデータを使用する必要があるか、どのイベントを処理する必要があるかなど、他の制約に対してより適切に機能するものもあります。

ただし、表示したデータを考えると、これは2つのCompositeViewを持つレイアウトのように見えます。

レイアウトは、日付ピッカー、入力ボックス、および製品と支払い用の2つの空のdivをレンダリングします。これらの空の各divには、レイアウトに関連付けられたリージョン定義があるため、製品と支払いを表示できます。

次に、製品のCompositeView(製品のリストと[製品の追加]ボタンをレンダリングするテンプレート)を作成できます。CompositeView自体が、[製品の追加]ボタンのクリックを処理します。ItemViewは、リスト内の各製品をレンダリングするために指定されます。

支払いは製品と同じ方法で行われます。

...繰り返しますが、これはそれを機能させるための唯一のオプションです。1つのレイアウトビューと2つのコレクションビューを使用してすべてを実行することも、単一のItemViewとしてすべてを実行することもできます(これは保守が困難ですが、それでも可能です)。

お役に立てば幸いです。

于 2012-09-09T12:53:50.237 に答える