我还在学习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未定义。
答案 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>