我对 Angular.js 很陌生,我似乎无法弄清楚如何解决我的问题。
该应用程序由三个主要选项卡组成,它们也是顶级路线,即。
#/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 都会重新渲染整个视图,这也会导致线程列表(右侧)重新渲染并松开其滚动位置。
I would like to keep the thread-list from re-render whenever a thread is selected and I can't seem to figure out how to organize my routes/templates in order to achieve this.
任何建议将不胜感激!