私のindex.htmlには、このようになりますangularjs .htmlファイル。範囲は
externalCtrlではlocalStorage(成功したログインユーザーの後にそこに保存されています)の値を取得しています。現在の場合は_authentication.isAuth = trueです。 。私はNG-IF = "_ authentication.isAuth" のは、ユーザーとNG-IF = "!_ authentication.isAuth" に記録されていないためにログインして自分のページを開発することができます
マイexternalCtrlコードは次のとおりです。正しく動作この時点にconsole.logで
'use strict';
app.controller('ExternalCtrl', ['$scope', 'localStorageService',
function($scope, localStorageService) {
var _authentication = {};
var _authentication = {
isAuth: false
};
var authData = localStorageService.get('authorization');
if(authData) {
_authentication.isAuth = true;
console.log(_authentication.isAuth);
}
}
]);
と明らかにその偽の場合、それは真か偽である場合はtrueをログに記録します。
その後、前述のように、header.htrlのコントローラーであるheaderCtrlにその変数へのアクセス権があるかどうかをチェックしたいと思います。だから、このコントローラでは、私は行を追加します。なぜ
ReferenceError: _authentication is not defined
- :
console.log(_authentication.isAuth);
次のエラーを引き起こしますか?
- これは正しい方法ですか?
だから、ネストされたコントローラに私が外部コントローラで定義された変数へのアクセス権を持っていけませんか?私は持っていると思った。 – BT101
いいえ、あなたは親コントローラ内でvarを使っています。 $ scopeまたは$ rootScopeに変数を定義する必要があります。 $ scopeを使用している場合は、子コントローラビューで{{$ parent.val}}を出力する必要があります。 – Vivz