一連のアイテムをフィルタリングできる Web アプリケーションがあり、Web フロントエンドで backbone.js を使用しているとします。
当然のことながら、Backbone.Modelを拡張するFilterとBackbone.Collectionを拡張するSearchResultListを作成することになりました。Filter には、 searchTerm、dataFrom、dateToなどの属性があります。Filter には というメソッドもあります。を呼び出して、検索結果を更新/フィルタリングする必要があります。applyFilter
Filter.applyFilter
searchResultList.fetch
問題は、バックボーン用語の属性ではなく、プロパティsearchResultList
として最適に初期化する方法です。Filter
が によって「所有」されているとは限らないため、を作成したくSearchResultList
ありません。Filter.initialize
SearchResultList
Filter
今のところ、searchResultList
オブジェクトをoption
toとして渡すことになりましFilter.initialize
たが、少しぎこちなく感じます。
Filter.applyFilter
を呼び出すのは良い考えだとは思えませんSearchResultList.fetch
。Filter
ただし、呼び出されたときに何らかの方法で新しいリクエストをトリガーするメソッドが必要です。(変更イベントをリッスンすることFilter
もオプションではありません。ユーザーは複数のステップでフィルター オプションを変更する必要があり、ボタン クリックでフィルターを手動で適用することを決定するためです)