2016-06-24 84 views
0

按Ctrl代碼:AngularJS location.path自定義URL

$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> 

代碼工作時的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開頭並跟隨moduleName並相應地顯示html的url。

如何使用location.path()來匹配管理網址並同時顯示/隱藏div?

回答

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的是不要去,如果你想正確的方法安全性,您可能想要查看身份驗證和授權的不同方式通貨膨脹,有些鏈接可能對你有用的

  1. https://www.sitepoint.com/implementing-authentication-angular-applications/
  2. http://www.stefanoscerra.it/permission-based-auth-system-in-angularjs/
+0

好了,問題並不涉及安全問題,但如何當URL改變設置一些導航欄爲用戶或管理員端。如果我遇到管理員,它會設置管理員標題其他用戶標題。 – Slimshadddyyy