无法从父作用域检索值

时间:2015-03-06 23:07:54

标签: javascript angularjs

我还在学习AngularJS,而且我在实施中遇到了一些范围问题。

以下是我的控制器和指令定义:

angular.module('myModule', [])

.controller('myController', ['$scope', function($scope) {
  $scope.parentVariable = "Test";
}]);

.directive('myDirective', [function(){
  return {
    restrict:'AEC',
    link: function(scope, element, attrs) {
      var child = scope.$eval(attrs.myDirective);
    }
  }
}]);

以下是我的HTML:

<div ng-controller="myController"
  <div my-directive="parentVariable"></div>
</div>

我正在尝试检索parentValue的值,但是当我运行代码时,child未定义。

1 个答案:

答案 0 :(得分:1)

你有一些错别字,一旦你清理它们,一切正常。此外,如果要在DOM中使用变量,则需要使其成为范围属性。见下文:

angular.module('myModule', [])

.controller('myController', ['$scope', function($scope) {
  $scope.parentVariable = "Test";
}])
.directive('myDirective', [function(){
  return {
    restrict:'AEC',
    template: '<p>{{child}}</p>',
    link: function(scope, element, attrs) {
      scope.child = scope.$eval(attrs.myDirective);
    }
  }
}])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myModule" ng-controller="myController">
  <div my-directive="parentVariable"></div>
</div>