Ctrl代码:
$scope.$on('$locationChangeStart', function () {
var o1 = $location.path();
var o2 = '/login';
var o3 = '/password-recovery';
if(o1.match(o2)){
$scope.loginContainer= function() {
return true;
};
});
HTML
<div class="container" ng-show="loginContainer()">
<div ui-view></div>
</div>
当网址与http://localhost/angapp/#/login
匹配时代码有效但现在我的管理网址如下所示
http://localhost/angapp/#/admin/users
http://localhost/angapp/#/admin/usersGrp
http://localhost/angapp/#/admin/XYX
我需要使用var o4 = '/admin/';
,这样才能使用以admin开头的任何网址,后跟moduleName并相应地显示html。
如何使用location.path()
来匹配管理员网址和同时显示/隐藏div?
答案 0 :(得分:0)
一个非常简单的答案,但您可以检查网址中是否包含关键字“admin”,并设置一个布尔变量来显示或隐藏div。
例如:
if ($location.absUrl().split('?')[0].match('admin')) {
$scope.showDiv = true;
} else {
$scope.showDiv = false;
}
并且div可以是
<div ng-show="showDiv"></div>
或
<div ng-hide="showDiv"></div>
但是,如果您想要安全性,依赖于url是不正确的方法,您可能想要查看不同的身份验证和授权方式,您可能会发现一些有用的链接