2015-12-16 2 views
7

Я немного новичок в Angularjs. Я хочу получить доступ «$ scope.myVar« переменная внутри »myController 'контроллер. Было бы очень полезно, если вы сможете предоставить решение.Доступ к встроенному регулятору IntuUpenus Directus

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>

ответ

12

Вы просто создать myVar переменную в контроллере и передать его в директиве, используя my-var атрибут.

В вашем myController, определение myVar в

$scope.myVar= "Hello" 

Я ваш DOM, передать его в директиве, как

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

Поскольку вы используете два способа связывания, любые изменения, внесенные в myVar самая директива доступны в вашем контроллере.

Вы можете написать watch по номеру myVar, чтобы отслеживать изменения.

+1

Большое спасибо ВВК работает – vimuth

+0

Спасибо большое, я почесал голову в течение веков, и это было недостающим звеном (необходимо связать данные между директивой и родительским контроллером через атрибут) –

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

Большое спасибо " vijay shgokar ". – vimuth

+1

Ты спас мой день. Спасибо –

+1

Это сработало и для меня. – costa