2016-12-12 19 views
0

イオンと角度のシーン全体に初心者。 イオンクリエーターを使用してビューファイルを生成しました。 私の目標は、タブに進む前に、ユーザーがログインしているかどうかを確認することです。 しかし、認証部分に入る前に、ユーザーがどちらのウィンドウにいるかを確認したいと思っていました。 私は単純なアラート/ console.logを使用して進行状況を識別しようとしています。イオンアプリで現在の状態を取得

以下は私のコードです。

.controller('adminPageCtrl', ['$scope', '$stateParams', '$state', function  ($rootScope, $scope, $stateParams, $state) { 
    //alert($state.current.name); 
    $scope.currState = $state; 
    var currentState = $state.current.name; 
    console.log($state); 
}]) 

私は頭や尾を作ることができない以下のエラーに遭遇しました。 "ionic.bundle.js:26799 TypeError:プロパティ 'current' of undefinedを読み取れません。

ご協力いただきまして誠にありがとうございます。 さらにconsole.log($ state);コマンドは "undefined"を返します。

+0

依存関係として 'ui.router'を含めましたか? –

+0

Ionicプラットフォームは自動的にui.router依存関係を追加します。どのイオン版を使用していますか? –

+1

$ scope.currState = $ state;を実行して '$ rootScope'の依存関係 –

答えて

1

コードの問題は、実際に使用しているよりも多くの定義を定義していることです。

関数定義の$ rootScopeへの参照を削除するか、依存関係のリストに追加することで修正できます。

.controller('adminPageCtrl', ['$scope', '$stateParams', '$state', function($scope, $stateParams, $state) { 
    //alert($state.current.name); 
    $scope.currState = $state; 
    var currentState = $state.current.name; 
    console.log($state); 
}]) 

OR

.controller('adminPageCtrl', ['$rootScope', '$scope', '$stateParams', '$state', function($rootScope, $scope, $stateParams, $state) { 
    //alert($state.current.name); 
    $scope.currState = $state; 
    var currentState = $state.current.name; 
    console.log($state); 
}]) 

そして、あなたは、関数内の変数に名前を付けるために、依存関係の名前を使用しているので、あなたも(ドキュメントhttps://docs.angularjs.org/guide/diに目を通してください)暗黙のアノテーションを使用することができます。

.controller('adminPageCtrl', function($scope, $stateParams, $state) { 
    //alert($state.current.name); 
    $scope.currState = $state; 
    var currentState = $state.current.name; 
    console.log($state); 
}) 
1

あなたは$rootScope依存関係が必要です。それらがなければ、別の議論のリストを受け取るでしょう。

.controller('adminPageCtrl', ['$rootScope', '$scope', '$stateParams', '$state', function($rootScope, $scope, $stateParams, $state) { 
    $scope.currState = $state; 
    var currentState = $state.current.name; 
    console.log($state); 
}]) 
関連する問題