2

モデル以外のコンテンツをバックボーンコレクションビューに追加するための適切または最良の方法はありますか?たとえば、ログインフォームがあり、ユーザー名とパスワードの両方のフィールドがコレクション内のモデルを表しているとします。これらを表示するために、私がしなければならないのは、これらの各モデルのビューを次のように繰り返すことだけです。

addAll: function(){ this.collection.forEach(this.addElementToEl, this); },

しかし、モデルを使用して適切に保存されていないコンテナdiv、アイコン、親フォーム要素などの他の要素をDOMに追加する適切な方法は何ですか?レンダリングする前に、コレクションビューに追加のhtmlを追加する必要がありますか?もちろん、最初のリクエストでこのサーバー側を実行できますが、これはできるだけ避けたいと思います。

4

1 に答える 1

2

それは良い方法ではありません。非自明なビューをレンダリングする必要がある場合、留意すべき 2 つのことがあります。まず、手作業で DOM を構築するよりもテンプレート (例: アンダースコアが単純なテンプレート エンジンを提供する) を優先します。第二に、単層構造よりも階層構造を好む。たとえば、テンプレートでコレクションをループしないでください。各ビューは、独自のコンテンツをレンダリングすることのみを担当し、その子は再帰的にそれらを処理します。これにより、コードがよりシンプルになり、保守しやすくなります。この階層構造のもう 1 つの利点は、ビューの粒度が細かくなり、AJAX 更新ゾーンが小さくなることです。実際、これは Backbone の原則の 1 つです。

この優れた記事を読むことをお勧めします。

于 2013-01-10T02:05:44.537 に答える