大佬教程收集整理的这篇文章主要介绍了angularjs – 根据路径隐藏ng-view DOM之外的元素,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在我的角度应用程序中添加“登录”视图/路径,该应用程序隐藏了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;之类的内容来更改位置.
使用标准路由,这很好用,即每次都不重新加载树,而只是主“窗口”.
问题:
我想添加一个登录视图的登录功能.对于此视图,只有在登录后才能看到树视图.为了通过正常路由实现这一点,我知道我可以将ng-view向上移动一级,即将树视图嵌入到每个视图中 – 但这会导致树视图在每次路径更改时重新加载.
是否有一个简单的替代方案,允许我检查ng-view中显示的页面?或者在路由期间检查一些其他变量集?然后我可以使用类似的东西:
<div class="col-sm-3" ng-controller="TreeController" ng-show="IsUserLoggedIn">
就像是:
<div ng-app="myApp" ng-controller="MainController">
并在MainController中注入一个Session.像Session这样的东西足以决定是否显示树.
这是MainController的一个例子:
_app.controller('MainController',function ($scope,SessionservicE) { $scope.user = Sessionservice.getUser(); });
_app.factory('Sessionservice',function() { var user = null; return { getUser : function() { return user; },setUser : function(newUser) { user= newUser; } }; });
当然,登录时必须将用户设置为Sessionservice.因此,Sessionservice也必须注入到LoginController中.
最后,你的HTML:
<div ng-app="myApp" ng-controller="MainController"> <div class="col-sm-3" ng-controller="TreeController"> <div ng-hide="user == null" treeviewdirective-here> </div> </div> <div class="col-sm-9 content" ng-view=""> </div> </div>
以上是大佬教程为你收集整理的angularjs – 根据路径隐藏ng-view DOM之外的元素全部内容,希望文章能够帮你解决angularjs – 根据路径隐藏ng-view DOM之外的元素所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。