有没有办法只在渲染ng-view时才在ng-view之外渲染视图?

时间:2013-12-01 19:10:03

标签: angularjs angularjs-view

我使用ng-include以外的ng-view部分加载了用户导航。我也在验证用户并预取route.resolve中任何控制器和视图所需的几乎所有数据。

问题是使用ng-show="currentUser"指令显示用户导航部分,因此当用户登录并设置currentUser时,会显示导航部分,但新视图仍在等待显示,直到在route.resolve中获取所有数据。当用户注销时会发生相同的情况 - 导航栏被隐藏,旧的视图仍然显示在用户被重定向之前,并且显示了已注销用户的页面。

有没有办法以某种方式“链接”(重新)渲染主视图(ng-view)和部分视图之外?我唯一的另一个想法是移动ng-include指令,将导航栏加载到每个模板中,这很烦人。

1 个答案:

答案 0 :(得分:2)

我会利用ng-view$viewContentLoaded,已发出,here}和$route serice($routeChangeSuccess广播的事件,见here)。

用户导航部分的控制器必须设置一个控制UI可见性的标志,具体取决于相应事件的到达模型的状态(可能是currentUser)。< / p>