我在使用ng-view
之外的ng-include
加载的部分中获得了用户导航。我还对用户进行身份验证,并在route.resolve
中预取任何控制器和视图所需的几乎所有数据。
问题是使用ng-show="currentUser"
指令显示用户导航部分,因此当用户登录并设置currentUser
时,会显示导航部分,但新视图仍在等待显示,直到在route.resolve
中提取所有数据为止。当用户注销时也会出现同样的情况——导航栏被隐藏,在用户被重定向并显示注销用户的页面之前,旧视图仍然显示。
有没有办法以某种方式"链接"(重新)主视图(ng-view
)的渲染和该视图的部分外部?我唯一的另一个想法是移动ng-include
指令,该指令将导航栏加载到每个模板中,这很烦人。
我将使用ng-view
($viewContentLoaded
,已发射,请参阅此处)和$route
服务($routeChangeSuccess
,已广播,请参阅这里)触发的事件。
用户导航部分的控制器必须设置一个标志,根据适当事件的到来和模型的状态来控制UI的可见性(可能是currentUser
)。