私は Angular.js にまったく慣れていないので、問題を解決する方法がわかりません。
アプリは、トップレベルのルートでもある 3 つのメイン タブで構成されています。
#/home
#/inbox
#/products
現在のルート構成は次のようになります (coffeescript):
$routeProvider.
when('/home', templateUrl: 'home.html').
when('/inbox', templateUrl: 'inbox.html').
when('/inbox/:thread_id', templateUrl: 'inbox.html', controller: 'MessagesCtrl').
otherwise(redirectTo: '/inbox')
さて、問題は受信トレイ ビューです。
受信ボックス ビュー ( inbox.html
) は、左側にメッセージ スレッドのリスト、右側に選択したスレッドのメッセージを含む分割列テンプレートです。
--------------------------
| Navigation |
--------------------------
| | |
| Threads | Messages |
| | |
| | |
#/inbox
スレッドが選択されているかどうかに関係なく、スレッドのリストはすべてのルートで表示される必要があります。
ルートからわかるように、受信トレイ ビューは個別のテンプレート ( inbox.html
) であり、スレッドが選択されている場合と選択されていない場合の両方で読み込まれます。これにより、Angular はスレッドが選択されるたびにビュー全体を再レンダリングし、スレッド リスト (右側) も再レンダリングしてスクロール位置を失います。
スレッドが選択されるたびにスレッドリストが再レンダリングされないようにしたいのですが、これを達成するためにルート/テンプレートを整理する方法がわかりません。
どんな提案でも大歓迎です!