根据路由隐藏 ng-view DOM 之外的元素

2024-05-12

问题:

如何将“登录”视图/路线添加到我的角度应用程序中,隐藏位于ng-view DOM?

情况:

在我的 Angular 页面中,左侧有一个导航树视图,中间有一个主视图:

<div ng-app="myApp">
    <div class="col-sm-3" ng-controller="TreeController">
        <div treeviewdirective-here>
        </div>
    </div>
    <div class="col-sm-9 content" ng-view="">
    </div>
</div>

树视图中的每个节点都使用类似的方法更改位置window.location.hash = '#/' + routeForTheClickedItem;.

使用标准路由,效果很好,即树不会每次都重新加载,而只是主“窗口”。

Problem:

我想添加带有登录视图的登录功能。对于此视图,树视图不应可见 - 仅在登录后才可见。为了通过正常路由实现这一点,我知道我可以移动ng-view上一层,即将树视图嵌入到每个视图中 - 但这会导致树视图在每次路由更改时重新加载。

有没有一个简单的替代方法可以让我检查 ng-view 中显示的页面?或者在路由过程中检查其他一些变量集?然后我可以使用类似的东西:

<div class="col-sm-3" ng-controller="TreeController" ng-show="IsUserLoggedIn">

您可以在 ng-view 之外监听 routeChangeSuccess

$scope.$on('$routeChangeSuccess', function (event, currentRoute, previousRoute) {
//do something here
});

希望有帮助,你可以在 angularjs IRC 上找到我 - maurycyg

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据路由隐藏 ng-view DOM 之外的元素 的相关文章

随机推荐