私はRoutingを処理するためにAngularJSアプリケーションにangle-ui-routerを構築しています。ログイン機能とそのテンプレートをng-viewディレクティブから分離することはできますか?
ログイン機能とテンプレートをng-viewディレクティブから完全に分離することができるのだろうかと思っているので、残りのレイアウトはユーザーが認証される前に表示されません。
これが現在の設定です:
これを行う方法上の任意のアイデア?
ありがとうございます! UI-ルータを使用して
私はRoutingを処理するためにAngularJSアプリケーションにangle-ui-routerを構築しています。ログイン機能とそのテンプレートをng-viewディレクティブから分離することはできますか?
ログイン機能とテンプレートをng-viewディレクティブから完全に分離することができるのだろうかと思っているので、残りのレイアウトはユーザーが認証される前に表示されません。
これが現在の設定です:
これを行う方法上の任意のアイデア?
ありがとうございます! UI-ルータを使用して
うんこのようなさまざまな状態を作り出す宣言:
.state('login', {
url: '/login',
controller: 'LoginController',
templateUrl: 'app/views/login.html',
})
.state('stateNameIfLoggedIn', {
url: '/dashboard',
controller: 'DifferentController',
templateUrl: 'app/views/differentTemplate.html',
userLoggedIn: true
})
あなたLoginController
チェックでは、ユーザは、現在、このような異なる状態に彼をリダイレクトし、ログインした場合:
//controller code starts
if(userLoggedIn === true){
$state.go('stateNameIfLoggedIn')
}
ものは、あなたが何かをチェックして、ルートを制御することができますテンプレート+コントローラでルートを表示する前にrouteProvierとです。
'use strict'
intranet
.config ($routeProvider) ->
$routeProvider
.when '/page1',
templateUrl: 'views/page1.html'
controller: 'Page1Ctrl'
.when '/page2',
templateUrl: 'views/page2.html'
controller: 'Page2Ctrl'
.otherwise
redirectTo: '/'
.run ($rootScope,Token,$location) ->
$rootScope.$on '$locationChangeStart', ->
Token.check()
$rootScope.active_menu = $location.path()
トークンをチェックしている私のトークンプロバイダ。
'use strict'
intranet
.provider 'Token', ->
@$get = ($location,$http,$q,$rootScope) ->
check:()->
if localStorage['access_token']
$rootScope.loginMade = true
else
$rootScope.loginMade = false
$location.path '/login'
これはショーのコンテンツではなく、私のインデックスです。
<header-app></header-app>
<sidebar-app></sidebar-app>
<!-- Add your site or application content here -->
<div ng-view="" class="container" ng-class="{container_login : loginMade == false}">
</div>
<footer-app></footer-app>
私のapp.routesに設定がありますが、これはng-viewからログインテンプレートを分離しません。ログイン状態になると、レイアウト全体が表示されます。 – Mortenkp25
Ui-routerでは、ng-viewディレクティブの代わりにui-viewディレクティブを使用してネスト状態を作成する必要があります。 –