5

TL; DRビューを一時的に無効にして別のビューを安全にロードできるようにするには、読み込まれたビューを安全に閉じて元のビューに戻しますか?Backbone.js - 一時的に無効にする(イベントを表示する)表示

私は次のシナリオを持っている:

  1. ユーザーはSearchViewをロード/searchを開きます。
  2. ユーザーがボタンをクリックして検索を実行します。
  3. コレクション内SearchViewにデータが入力されている場合は、それを反映するためにUIが更新されます。
  4. ユーザーが結果アイテムをクリックします。
  5. SearchViewは無効です(eventsを無効にするだけです)。
  6. ItemViewが読み込まれ、項目の詳細が表示されます。
  7. ユーザーは、閉じるボタンをクリックしてItemViewを閉じます。
  8. SearchViewが再度有効になります。

ポイント5とポイント8を達成する最良の方法は何ですか?私はSearchView.unbind()(ポイント5)とSearchView.bind()(ポイント8)を呼び出すことを考えています。

ボーナス:解決策がスタック状であると良いでしょう。私。ビューAの負荷がビューCが閉じているときに表示C.を読み込むことができますBを見る、ビューBが復活された、など

+0

のためのポイント5用SearchView.undelegateEvents()を呼び出してみて、その後、SearchView.delegateEvents() 'router.navigate'を使って、ユーザが選択したデータで' ItemView'に移動し、 'SearchView'をアンロードします。これにより、何かをバインド解除する必要がなくなります。 – tkone

+0

これはまた、ユーザがクリックして項目の詳細から検索結果に戻るという追加の利点を与えるでしょう – tkone

+0

@tkone URLを更新するのに 'router.navigate'を使いますが、検索結果として' SearchView'を破壊することはできません無限スクロールを使用して表示されます。スクロール位置を維持する必要があります。 – wiradikusuma

答えて

9

そうしない理由をポイント8.

関連する問題