【问题标题】:Is there a way to render a view outside of ng-view only when ng-view gets rendered?只有当 ng-view 被渲染时,有没有办法在 ng-view 之外渲染视图?
【发布时间】:2013-12-02 04:08:40
【问题描述】:

我已经使用ng-includeng-view 之外部分加载了用户导航。我还在对用户进行身份验证并预取几乎所有控制器所需的所有数据,并在route.resolve 中查看。

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

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

【问题讨论】:

    标签: angularjs angularjs-view


    【解决方案1】:

    我会利用ng-view$viewContentLoaded,已发出,请参阅here)和$route 服务($routeChangeSuccess,已广播,请参阅here)触发的事件。

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

    【讨论】:

    • 感谢您的提示!我必须为其添加一个控制器,但它可能足以开始侦听您在设置或删除 currentUser 时提到的事件之一,并在发出标志时更新标志。我明天试试。可能需要 angular-once...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 2015-06-15
    • 2015-07-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多