2014-03-19 59 views
0

我正在使用角引導模式。AngularJS引導模式範圍值不顯示

termsText已填充且scope.productTerms確實包含值。但由於某種原因,當我在模態內輸出{{ productTerms }}時,該值未被顯示。爲什麼?

JS

$scope.openProductTerms = function (termsText) { 
    $scope.productTerms = termsText <-- has a value in console.log() 
    var modalInstance = $modal.open({ 
     templateUrl: 'myModalTerms.html', 
     controller: ModalInstanceCtrl 
}); 




var ModalInstanceCtrl = function ($scope, $modalInstance) { 
    $scope.ok = function() { 
     $modalInstance.dismiss('OK'); 
    }; 
}; 

HTML

{{ productTerms }} < ==== value shows outside modal 


<script type="text/ng-template" id="myModalTerms.html"> 
    <div class="modal-body"> 

     {{ productTerms }} <==== same value does not show insdie modal? 

    </div> 
    <div class="modal-footer"> 
     <button class="btn btn-primary" ng-click="ok()">OK</button> 
    </div> 
</script> 
+0

模態有一個新的控制器,並因此新的範圍。這可能會有所幫助https://egghead.io/lessons/angularjs-sharing-data-between-controllers – user3360944

+0

當您打開模式時,您應該能夠指定範圍。 –

+0

@Zack Argyle範圍是空的。 – Prometheus

回答

1

該模式有一個新的控制器,因此一個新的範圍。 services.js

angular.module('services',[]). 
    factory('sharedService', function($rootScope) { 
    var sharedService = {}; 
    sharedService.value = null; 

    sharedService.prepForBroadcast = function(value) { 
     this.value = value; 
     this.broadcastItem(); 
    }; 

    sharedService.broadcastItem = function() { 
     $rootScope.$broadcast('shared'); 
    }; 

    return sharedService; 
}); 

controller.js

 $scope.openProductTerms = function (termsText) { 
      sharedService.prepForBroadcast(termsText); 
     var modalInstance = $modal.open({ 
     templateUrl: 'myModalTerms.html', 
     controller: ModalInstanceCtrl 
    }); 

lastController.js

 var ModalInstanceCtrl = function ($scope, $modalInstance,sharedService) { 
     $scope.$on('shared', function() { 
    $scope.productTerms = sharedService.value; 
    }); 
     $scope.ok = function() { 
      $modalInstance.dismiss('OK'); 
     }; 
    }; 
1

試試你的HTML

從我的經驗中使用{{$parent.productTerms}},似乎角引導模式創建一個新的範圍。所以通過首先引用$parent,您將能夠獲得您的模型的價值。

+0

對不起,因爲它不是一個孩子。 – Prometheus