2015-12-16 24 views
7

Angularjs için biraz yeniyim. İstediğim, "myController" denetleyicisine "$ scope.myVar" değişkenine erişimdir. Bir çözüm sunabilirseniz çok yardımcı olur.Erişim AngularJs yönerge değişkeni denetleyicinin içinde

angular.module('myDirective', []) 
 
     .controller('myController', ['$scope', function ($scope) { 
 
       
 
      }]) 
 
     .directive('myDirective', function() {   
 
      return { 
 
       scope: { 
 
        myVar: '='     
 
       }, 
 
       controller: function ($scope) { 
 
        $scope.myVar = 'xyz'; 
 
        alert($scope.myVar); 
 
       } 
 
      }; 
 
     });
<html lang="en-US"> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
    <script type="text/javascript" src="newjavascript.js"></script> 
 
    <body ng-app="myDirective"> 
 
     <div ng-controller="myController"> 
 
      <my-directive></my-directive>> 
 
     </div> 
 
    </body> 
 
</html>

cevap

12

Sadece kendi denetleyici bir myVar değişken oluşturmak ve my-var özelliğini kullanarak direktif geçmek. Eğer iki yönlü bağlama kullanıyor olduğunuz için myController yılında

,

$scope.myVar= "Hello" 

Ben senin DOM olarak myVar tanımlayın

<my-directive my-var="myVar"></my-directive> 

olarak direktifi onu geçmek, tarafından myVar yapılan değişiklikler Direktif kontrol cihazınızda mevcuttur.

Değişiklikleri izlemek için myVar numaralı telefondan watch'u ekleyebilirsiniz.

+1

Çok teşekkürler VVK o – vimuth

+0

Çok teşekkürler çalışır, ben yaş için kafamı çizilmeye ve bu kayıp halka (eğer özelliğiyle direktif ve ebeveyn kontrolörü arasındaki bağlama veriye ihtiyaç) –

7
angular.module('myDirective', []) 
     .controller('myController', ['$scope', function ($scope) { 
       $scope.show = function() { 
        alert($scope.myVar); 
       }; 
      }]) 
     .directive('myDirective', function() {   
      return { 
       scope: { 
        myVar: '='     
       }, 
       controller: function ($scope) { 
        $scope.myVar = 'xyz'; 
        alert($scope.myVar); 
        $scope.$parent.myVar = $scope.myVar; // here you can access the controller scope by using $parent 
       } 
      }; 
     }); 
+2

Çok teşekkürler oldu " vijay shegokar ". – vimuth

+1

Günümü kurtardın. Teşekkürler –

+1

Bu benim için de çalıştı. – costa

İlgili konular