4


ユーザーがこの検索で​​何かを書くと、アウトバーンを使用して検索フォームで指定されたテキストをサブスクライブします(たとえば、「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 がそれを変更し、「追加」をリッスンする) は正しい方法ですか?

4

1 に答える 1