2017-01-05 18 views
0

私の体はMainControllerで制御されています。身体には、別のネストされたコントローラがあります。子コントローラ内の親コントローラの変数を変更するAngularJS 1.x

index.htmlを

<body ng-controller="MainController"> 
    <div ng-controller="LoginController" ng-hide="isLoggedIn"></div> 
    <div class="navbar" ng-hide="!isLoggedIn"> 
    <!-- A form which calls login() function inside LoginController --> 
    </div> 
</body> 

メインコントローラ:

angular.module('DemoApp') 
    .controller('MainController', ['$scope', function ($scope) { 
    $scope.isLoggedIn = false; 
}]); 

LoginController

012私の index.htmlでは、私は、ネストされたコントローラによって制御 div要素を持っています

私が入れたいのは、MainControllerの変数(isLoggedIn)を自分のネストされたコントローラから変更することです。 $scope.parentを使用しましたが、unknow provider parentと表示されます。これを達成する方法は?

+1

isLoggedInを格納するために$ localStorageを使用します。必要に応じて$ localStorageから取得します。このデータは、手動でキーをクリアするまで使用可能です。 –

+0

@ SharanDeSilvaありがとう、私は将来それを使用します。 –

答えて

2

親コントローラスコープを取得するには、$parentを使用する必要があります。次に、さまざまなメソッドとプロパティにアクセスできます。

$scope.$parent.isLoggedIn = true; 
+0

ありがとう!また、私が再びホームページを訪れると、その変数をfalseに設定する必要があります。どうやってするか? –

関連する問題