Ang*_*hef 6 javascript angularjs
我有一个AngularJS单页面应用程序显示3个视图(实际上是3个指令).为了说明我的问题,让我们假设我的UI与GMail的UI相同,我的3个视图是:
每当路径发生变化时,这3个视图都需要自我更新.例如:
在AngularJS中执行此操作的最佳方法是什么?
到目前为止,我有:
$routeProvider只支持一个视图ngView.这种作品,但我有几个问题:
我需要注意路径更改的代码(我把它放在服务中或控制器中):
var watchExpression = function() { return $location.path(); };
var listener = function(newPath, oldPath) {
// Broadcast event on $rootScope
$rootScope.$broadcast('PathChanged', newPath);
};
$rootScope.$watch(watchExpression, listener);
Run Code Online (Sandbox Code Playgroud)
然后,在视图控制器中,我捕获事件:
$scope.$on('PathChanged', function(event, path) {
// Update view based on new path.
});
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.谢谢.
你的最终版本显得精致与locationChangeSuccess,但对于其他人阅读此,我想你也很快排除了$ routeProvider.您可以为主内容窗格提供一个ng视图,该视图随路径一起更改,然后是导航窗格和工具栏的其他独立("静态")控制器/模板.
现在,在这些其他2个控制器中监听路由更改:
$rootScope.$on('$routeChangeSuccess', function(evt, cur, prev) {
...do what you have to do here, maybe set a $rootScope.path as you did
})
Run Code Online (Sandbox Code Playgroud)
全部使用原生Angular功能.我实际上在http://provok.in中这样做,我使用Angular构建的网站,我有一个类似的布局(好吧,不完全是,但我有"静态"部分和主要内容的ng视图,动态由routeProvider根据路径更新.
| 归档时间: |
|
| 查看次数: |
5595 次 |
| 最近记录: |