5
TL; DRビューを一時的に無効にして別のビューを安全にロードできるようにするには、読み込まれたビューを安全に閉じて元のビューに戻しますか?Backbone.js - 一時的に無効にする(イベントを表示する)表示
私は次のシナリオを持っている:
- ユーザーは
SearchView
をロード/search
を開きます。 - ユーザーがボタンをクリックして検索を実行します。
- コレクション内
SearchView
にデータが入力されている場合は、それを反映するためにUIが更新されます。 - ユーザーが結果アイテムをクリックします。
SearchView
は無効です(events
を無効にするだけです)。ItemView
が読み込まれ、項目の詳細が表示されます。- ユーザーは、閉じるボタンをクリックして
ItemView
を閉じます。 SearchView
が再度有効になります。
ポイント5とポイント8を達成する最良の方法は何ですか?私はSearchView.unbind()
(ポイント5)とSearchView.bind()
(ポイント8)を呼び出すことを考えています。
ボーナス:解決策がスタック状であると良いでしょう。私。ビューAの負荷がビューCが閉じているときに表示C.を読み込むことができますBを見る、ビューBが復活された、など
のためのポイント5用
SearchView.undelegateEvents()
を呼び出してみて、その後、SearchView.delegateEvents()
'router.navigate'を使って、ユーザが選択したデータで' ItemView'に移動し、 'SearchView'をアンロードします。これにより、何かをバインド解除する必要がなくなります。 – tkoneこれはまた、ユーザがクリックして項目の詳細から検索結果に戻るという追加の利点を与えるでしょう – tkone
@tkone URLを更新するのに 'router.navigate'を使いますが、検索結果として' SearchView'を破壊することはできません無限スクロールを使用して表示されます。スクロール位置を維持する必要があります。 – wiradikusuma