1

噛み方がわからないという問題があります。たくさんのフィルターを備えた検索フォームがあります。現在のすべてのフィラーをグローバル名前ページに保存します。つまり、window.NM.CurrentSearchParams = {} で、フィルターからハッシュを更新します。ハッシュが更新されるたびに、更新 uri イベントが発生し、window.localtion.search が現在のパラメーターで再プレートされます。ここではすべてが正常に機能しています。page に入って window.location.search をデシリアライズし、CurrentSearchParams をパラメーターで更新すると、問題が発生しました。それも問題ありませんが、これらのパラメーターに基づいてフォームを再作成したいと思います。コードに少し混乱があり、それを行う最善の方法がわかりません。さまざまなビューでフォームの人口をパラメーターにバインドする方法は?

4

1 に答える 1

0

Backbone.Modelを作成して、イベントをCurrentSearchParamsサブスクライブできるようにします。change


NM.CurrentSearchParams = new Backbone.Model();


MyView = Backbone.View.extend({

  initialize: function(){
    NM.CurrentSearchParams.on("change", this.doStuff, this);
  },

  doStuff: function(){
    // do stuff here
  },

  close: function(){
    NM.CurrentSearchParams.off("change", this.doStuff, this);
  }

});

追加した「閉じる」メソッドに注意してください。これは非常に重要であり、ビューが完了して閉じる準備ができたらこれを呼び出す必要があります。そうしないと、ゾンビビューインスタンスで大量のメモリリークやイベントがトリガーされます:http://lostechies.com/derickbailey/ 2011/09/15 / zombies-run-managing-page-transitions-in-backbone-apps /

于 2012-09-28T20:57:32.517 に答える