2016-03-18 9 views
0

持つ問題ロードビューには、問題を表示するには - AngularJS + ui.router(更新)別のビューからビューをロードする場合(ビューを表示する)

問題:先のビューを表示するために何を確定するために適切なデータを受信して​​いません。

注:

インデックスui.router使用:

<section ng-if="page.header" ng-class="{'transparent-header': page.transparentHeader}" user-header></section> 

    <section ng-class="{'transparent-header': page.transparentHeader, 'create-event-back': page.background}" class="sec-full" ui-view></section> 

    <section ng-if="page.footer" user-footer></section> 

ルータ:

.state('LoginPage', { 
     url: "/login/", 
     data: { 
      name: "Login", 
      header: false, 
      footer: false, 
      css: false, 
      transparentHeader: false 
     }, 
     templateUrl: "app/partials/common/loginPage.html", 
     controller: "loginController" 
    }) 

ビューに直接ナビゲートします。すべてがうまくロードされますが、ナビゲーションバーを保持する<section>は、別のビュー(例:ホームビュー>>>>ユーザービュー)からナビゲートすると評価されません(ng-if)。

なぜか分かりません。

この問題が見つかりました。何が起こっているのですか: 制限されたページに移動すると、ログインページにリダイレクトされます。 $状態は制限されたページからデータを取得しています。

これは私がログに得るものです:状態へ

Loiginページ:

Object {name: "Login", header: false, footer: false, css: false, transparentHeader: false} 

制限pageto状態:

Object {name: "Your Profile", header: true, footer: false, css: true, transparentHeader: true…} 

コントローラ

.controller('appController', ['$scope','$state','$rootScope', function($scope,$state,$rootScope){ 

    //Control header and footer views getting data from router 
    $rootScope.$on('$stateChangeStart', function(event, toState){ 
     $scope.page = toState.data; 

    }) 

}]); 

私の質問はそれを防ぐ方法です。

答えて

0

データを正しく渡していますが、正しくアクセスしていない可能性があります。例では、データにアクセスするために、あなたのような構文を使用する必要があることを述べドキュメントで ...

$state.current.data.transparentHeader 

これを行うためには、あなたが同様にあなたのコントローラに$状態オブジェクトを挿入してください。

参照セクションには、私は問題を発見 https://github.com/angular-ui/ui-router/wiki

+0

「状態オブジェクトにカスタムデータを添付します」。データを取得していますが、リダイレクトのためにデータが変化しています。私は私の質問を更新します。見てみましょう –

関連する問題