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;
};
});<div class="container" ng-show="loginContainer()">
<div ui-view></div>
</div>当url与http://localhost/angapp/#/login匹配时,代码可以工作,但现在我有了管理员url,如下所示
http://localhost/angapp/#/admin/users
http://localhost/angapp/#/admin/usersGrp
http://localhost/angapp/#/admin/XYX我需要使用var o4 = '/admin/';,以便它接受任何以admin开头的url,然后跟着moduleName并相应地显示html。
如何使用location.path()来匹配Admin并同样显示/隐藏div?
发布于 2016-06-24 06:47:21
这是一个非常简单的答案,但是您可以检查url中是否包含关键字"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不是正确的方法,如果您想要安全性,您可能需要检查不同的身份验证和授权方式,一些您可能会发现有用的链接
https://stackoverflow.com/questions/38006893
复制相似问题