AngularJS更新自定义指令变量

时间:2015-05-22 06:40:42

标签: angularjs angularjs-directive

我的控制器中有一个变量用作标志。我在指令范围内使用此变量。我从指令调用我的控制器函数(使用此函数传递指令范围)并尝试更新标志变量,变量在控制器中更新(在console.log()中获得更新值)但我没有获得指令内的更新值。

1 个答案:

答案 0 :(得分:0)

需要您的代码知道您的指令和控制器之间的关系。 Here是我的简单例子。 $ scope.test可以更新。

JavaScript的:

angular.module('myApp',[]);

angular.module('myApp').controller('myCtrl',['$scope', function($scope){
  $scope.test='msg from myCtrl';
  $scope.onClick=function(){
    $scope.test='msg from function in myCtrl';
  };


}]);

angular.module('myApp').directive('myDirective', function(){
  return{
    restrict:'E',
    template:'<div>Hello! {{test}}</div><button class="btn btn-default" type="button" ng-click=onClick()>Change value</button>',
    controller:['$scope','$element',function($scope, $element){
      $scope.test='msg from myDirective controller.'
    }],
    link: function(scope, element, attrs){

    },
  };
});

HTML:

<body ng-app='myApp'>
<div ng-controller='myCtrl'>
  {{test}}<br/>
  <my-directive />
</div>
</body>