ユーザーがこの検索で何かを書くと、アウトバーンを使用して検索フォームで指定されたテキストをサブスクライブします(たとえば、「foo」を検索し、「foo」をサブスクライブします)。
アウトバーンロジックを分離するにはどうすればよいですか? 現在私のビューでは、ユーザーが送信をクリックすると、次のことを行います-
// On view:
onUserSearch : function(evt) {
evt.preventDefault();
var searchText = this.$el.find("#searchBox").val();
// searchResultsCollection is an instance of Backbone.Collection
SearchFeed.subscribe(searchBox, searchResultsCollection)
}
// SearchFeed subscribe method
subscribe : function(topic, collection) {
session.subscribe(topic, function(result) {
collection.add(result);
});
}
そして、私のビューでは、コレクションに「追加」を聞いて、結果ごとにビューを作成してレンダリングします。
私のコードはうまく構造化されていないと思います -
1. 「SearchFeed.subscribe」は正しい場所にありますか? ビューでこのコードを実行しても問題ありませんか? そして多分それはモデルにあるべきですか?
2. コレクションの変更 (サブスクライブに渡し、SearchFeed がそれを変更し、「追加」をリッスンする) は正しい方法ですか?