バックボーンビューの管理に最適な方法を見つけるのに役立ちます。バックボーンモデルビューの表示/非表示のアプローチ
たとえば、コレクションの各モデルのビューMyModelView
で構成されるMyCollectionView
のコレクションがあります。
ページ上の一部のモデルを非表示にするにはどうすればよいですか?
今、私はこの方法を、次の午前:いくつかは、私はモデルのプロパティを確認し、model.trigger 'hide'
かを呼び出し、この関数では
filter
を呼び出すループの内側すべてのmodel
- 使用
collection.each
model.trigger 'show'
- 最後に、
model view
にはthis.model.bind 'hide', this.hide, this
を使用しますが、実際には.hide()
またはを使用しています
このように私はひどいと思われます...なぜこの長い関数やイベントの連鎖をする必要がありますか?最も簡単なアプローチはありますか?
ありがとうございます!これらは、データを表現することになっていると、アプリケーションの制御に参加するべきではありません - -
お返事ありがとうございます。私はいくつかの追加の質問があります..なぜすべての論理は視野の中にあるべきですか?私はフィルタリングのための多くの声明があります。それらのすべてをモデル化することはできますか?また、ビューフィルタの内部動作は 'return model.filter(conditions)'のみを使用します。その後、レンダリング機能を呼び出す必要があります。 新しいビューのレンダリングは興味のあるアプローチです:) – ValeriiVasin
フィルタリングメソッドをコレクションクラス定義に移動することも意味があります。しかし、それはデータのサブセットを取得するヘルパーです。モデルやコレクションはデータを保存することになっていますが、データなどの妥当性を認識している必要がありますが、アプリケーションの流れを制御する構造体の役割を果たすので、変更や変更はしないでください。 。 –
フィルタリングをビューメソッドとして使うのではなく、コレクションではなく、私があなたに気づかずにレンダリングリストを扱っていた特別なListViewクラス(私がそこで述べたdocumentFragmentを使って)を使用したときに、アイテムビューまたはコレクションのタイプと構造 - オプションとして、アイテムビューファクトリメソッド、フィルタリング条件を渡すことができました。ビューは、ユーザーが設定したフィルタに基づいて表示する必要があるものを決定し、適切なモデルを選択しましたコレクションからビューを作成してレンダリングする –