私はゾンビのリファレンスケースのように見えるものに直面しています。
まず、これは私が使用しているコードです。
ここに私のユーザーの詳細マネージャーのレイアウトの要点があります
代わりに、コントローラーはここにあります
操作の流れは次のとおりです。
- 管理者は、コントローラーで「manageUsers」を呼び出すルートにアクセスすると、ユーザーのリストにアクセスします。
- 管理者がユーザー行をクリックすると、イベント「users:selected」がトリガーされ、リスナーは操作するユーザーインスタンスを受け取ります。
- DetailsLayoutは、アプリケーションのメインレイアウトでインスタンス化およびレンダリングされます。特にその「コンテンツ」領域で。
- ユーザー詳細フォームを処理するビューもインスタンス化され、DetailsLayoutの「dettagli」領域内にレンダリングされます。
- この時点で、管理者はこのユーザーのメモの管理に関心があります。そこで、彼は「notes」というラベルの付いたタブをクリックすると、notesLayoutの「note」領域にメモのリストが表示されます。
- 管理者が操作したいメモをクリックすると、イベント「notes:selected」が発生し、メモインスタンスが適切なイベントハンドラー(DetailsLayout.showNote)に渡されます。
この時点で、管理者がDetailsLayout.showUsersを起動するリンクをクリックすると、前述のコントローラーによってリッスンされたイベント「users:index」が起動され、上記のリストのポイント1に戻ります。
ポイント5までプロセス全体を繰り返すと期待どおりに機能しますが、管理者が作業するメモを選択するとすぐに、デバッガーは、DetailsLayout領域の「メモ」が定義されていないというエラーを表示します。
コードを段階的に実行すると、2回目の実行で、発生したイベントが、最初のパスで使用されたインスタンスにまだバインドされているポイント6を除いて、DetailsLayoutの適切なインスタンスに正しくバインドされていることがわかりました。
上記のコードは、ユーザーの詳細が表示されるたびに、DetailsLayoutの新しいインスタンスが作成されることを示しています。これは、ゾンビがまだいないことを保証するのに十分ではありませんか?バックボーン.marionetteのドキュメントから正しく思い出すと、layout.region.show()がヒットするたびに、前のビュー(イベントのバインド解除とその他すべて)が閉じられ、新しく渡されたビューがアタッチされます。
私が間違ったやり方をしているのは何ですか?
よろしくお願いします。よろしく
PS
Backbone.marionetteのバージョンは0.8.4です
Backbonejsのバージョンは0.9.2です