2016-06-24 11 views
0

Ctrl-Code:AngularJS location.path für benutzerdefinierte 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> 

Der Code funktioniert, wenn URL für http://localhost/angapp/#/login Spiele aber jetzt habe ich Admin-URL wie unten

http://localhost/angapp/#/admin/users 
http://localhost/angapp/#/admin/usersGrp 
http://localhost/angapp/#/admin/XYX 

Ich muss var o4 = '/admin/'; verwenden, damit jede URL, die mit admin beginnt, gefolgt von moduleName und HTML entsprechend angezeigt wird.

Wie nutze ich location.path(), um die URLs des Admins anzupassen und div ebenfalls anzuzeigen/auszublenden?

Antwort

0

Eine sehr einfache Antwort, aber Sie können überprüfen, ob die URL das Schlüsselwort "admin" enthält und eine boolesche Variable setzen, um divs ein- oder auszublenden.

für zB:

if ($location.absUrl().split('?')[0].match('admin')) { 
     $scope.showDiv = true; 
    } else {  
     $scope.showDiv = false; 
    } 

und die div kann

<div ng-show="showDiv"></div> 

oder

<div ng-hide="showDiv"></div>

aber unter Berufung auf URLs ist nicht der richtige Weg zu gehen, wenn Sie wollen Sicherheit, möchten Sie vielleicht verschiedene Möglichkeiten zur Authentifizierung und Autorisierung prüfen ation, Sie einige Links sind nützlich

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

Nun finden kann, hat die Frage nicht befasst sich mit Sicherheitsfragen, sondern wie etwas navbar für Benutzer oder Admin Ende zu setzen, wenn URL geändert wird . Wenn ich auf admin stoße, wird admin header else user header gesetzt. – Slimshadddyyy

Verwandte Themen