2013-10-02 3 views
1

Je suis nouveau avec AngularJS, voici mon code,Le contrôleur enfant Angularjs obtient la variable de portée du contrôleur parent qui ne fonctionne pas?

angular.module('remoteApp') 
    .controller('ScreensavertabCtrl', function ($scope, $modal, $log, $state,Screensaverchpwservice, 
    Screensaverchpwgetservice) { 
     $scope.screensaverData = { 
     screensaver:{ 
      pwProtect: '1' 
     } 
     }; 

    $scope.pwProtectOpen = function() { 
    if($scope.screensaverData.screensaver.pwProtect == true){ 
     var modalInstance = $modal.open({ 
     templateUrl: 'pwProtectModalContent.html', 
     controller: pwProtectModalInstanceCtrl 
    }); 
    }  
}; 

var pwProtectModalInstanceCtrl = function ($scope, $modalInstance) { 
    $scope.pwProtectCancel = function() { 
    $modalInstance.dismiss('cancel'); 
    console.log($scope.screensaverData.screensaver.pwProtect) 
    }; 

};}); 

lorsque j'active la fonction pwProtectCancel, je veux obtenir $scope.screensaverData.screensaver.pwProtect

valeur

, j'ai essayé d'utiliser « la portée $. $ Parent.screensaverData. screensaver.pwProtect 'n'est pas le travail?

Je suis tellement confus à ce sujet,

idées de quelqu'un?

+1

En supposant que vous avez correctement imbriqué les contrôleurs dans le code HTML, votre code devrait fonctionner tel quel. – AlwaysALearner

Répondre

5

Change vous $ d'appel de service modal à

var modalInstance = $modal.open({ 
     templateUrl: 'pwProtectModalContent.html', 
     controller: pwProtectModalInstanceCtrl 
     scope:$scope 
} 

et vous devriez obtenir les données non la portée modale.

La documentation mentionne sur l'option de portée

portée - une instance de portée à utiliser pour le contenu du modal (en fait le service modal $ va créer un champ d'enfant d'un a fourni portée). La valeur par défaut est $ rootScope

La valeur par défaut est rootscope.

+0

oui, merci pour votre aide !!! – user2783402

Questions connexes