我的代码如下:
<html ng-app="myapp">
<div id="outer" ng-controller="ParentCtrl">
<input type='text' ng-model='name' />
<div id='inner' my-directive></div>
</div>
<script src="js/jquery-3.0.js"></script>
<script src="js/angular-1.5.0.js"></script>
<script>
angular.
module('myapp', []).
controller('ParentCtrl', ['$scope', function ($scope) {
$scope.name='Jim';
}]).directive('myDirective',function(){
return {
template:'<div >Hello mate</div>',
scope: {}
}
});
</script>
</html>
接下来,在Chrome控制台中:
var x=angular.element('#outer').scope();
var y=angular.element('#inner').scope();
x===y; //true!!!!
令我惊讶的是,x等于y!我期待与y should point to the isolated scope of myDirective
相反的情况(这恰恰是代替范围的情况:{}我使用范围:true)而不是控制器的范围。 我错了什么?