2016-06-24 2 views
0

Ctrlキーコードlocation.path:AngularJSは、カスタム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が必要です。

同様に管理URLと表示/非表示のdivに一致するようにlocation.path()を使用するにはどうすればよいですか?

答えて

0

非常に単純な答えですが、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のに頼ることは行くための正しい方法ではないことができます。例えばため

セキュリティのために、認証と認可のためのさまざまな方法をチェックしたいかもしれませんエーション、あなたが役に立つかもしれないいくつかのリンクはまあ、問題はセキュリティ上の問題を扱っていませんが、URLが変更されたときに、ユーザーや管理者エンドのためにいくつかのナビゲーションバーを設定する方法

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

です。私がadminに遭遇した場合、それはadminヘッダーelse user headerを設定します。 – Slimshadddyyy

関連する問題