2013-10-02 155 views
1

我是新與Angularjs,這裏是我的代碼,Angularjs子控制器獲取父控制器作用域變量不起作用?

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) 
    }; 

};}); 

當我使pwProtectCancel功能,我想$scope.screensaverData.screensaver.pwProtect

價值,我試圖用「$範圍。$ parent.screensaverData。 screensaver.pwProtect'不起作用?

我很困惑,

任何想法?

+1

假設您已經將控制器正確嵌套在HTML中,您的代碼應該按原樣工作。 – AlwaysALearner

回答

5

更改您$模式服務調用

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

,你應該得到的數據沒有模態範圍。

說明文檔中提到關於作用域選項

範圍 - 用於模態的內容的作用域實例(實際上 的$模式服務將創建一個提供的 範圍子範圍)。默認爲$ rootScope

它獲得的默認值是rootcope。

+0

是的,感謝您的幫助! – user2783402