我是angularjs的新手。我对指令中的孤立范围有点困惑。我有以下代码,
HTML
<!doctype html>
<html ng-app="myApp">
<body ng-controller="componentsController">
<div class="scope-one" data-param="a">
<div class="scope-two" data-param="c"></div>
</div>
<!---->
</body>
</html>
脚本
angular.module('components', [])
.controller('componentsController', function($scope){
$scope.a = {
"b": 1
};
$scope.c = {
"d": 2
};
});
angular.module('myApp', ['components'])
.directive('scopeOne', function() {
return {
restrict: 'C',
scope: {
a: "=param"
},
link: function(scope, element, attrs) {
console.log('one', scope);
}
};
})
.directive('scopeTwo', function() {
return {
restrict: 'C',
scope: {
c: "=param"
},
link: function(scope, element, attrs) {
console.log('two', scope);
}
};
})
演示 http://jsfiddle.net/jPtb3/23/
问题
我有两个指令scope-one
,scope-two
并且我正在使用scope-two
inside scope-one
。对于scope-one
,孤立的范围是好的和适当的,而对于scope-two
值是undefined
。我没有得到问题,我做错了吗?当一个指令不在另一个指令中时,两个隔离范围值都很好。