我对Angular.js很新,我似乎无法弄清楚如何解决我的问题.
该应用程序包含三个主要选项卡,也是顶级路由,即.
#/home
#/inbox
#/products
Run Code Online (Sandbox Code Playgroud)
当前的路由配置看起来像这样(coffeescript):
$routeProvider.
when('/home', templateUrl: 'home.html').
when('/inbox', templateUrl: 'inbox.html').
when('/inbox/:thread_id', templateUrl: 'inbox.html', controller: 'MessagesCtrl').
otherwise(redirectTo: '/inbox')
Run Code Online (Sandbox Code Playgroud)
现在,问题是收件箱视图.
收件箱视图(inbox.html)是一个拆分列模板,左侧是消息线程列表,右侧是所选线程的消息:
--------------------------
| Navigation |
--------------------------
| | |
| Threads | Messages |
| | |
| | |
Run Code Online (Sandbox Code Playgroud)
#/inbox无论是否选择了某个线程,所有路由都应该可以看到线程列表.
从路径中可以看出,收件箱视图是一个单独的模板(inbox.html),在选择一个线程时和不选择线程时都会加载它.这使得Angular每次选择一个线程时都会重新渲染整个视图,这也会导致线程列表(向右)重新渲染并松开其滚动位置.
每当选择一个线程时,我想保持线程列表不再重新呈现,我似乎无法弄清楚如何组织我的路由/模板以实现这一点.
任何建议将不胜感激!