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