Angularjs 指令作用域和继承
有人能给我解释一下,为什么使用以下代码:Angularjs 指令作用域和继承,angularjs,angularjs-scope,Angularjs,Angularjs Scope,有人能给我解释一下,为什么使用以下代码: <html ng-app="myApp"> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script> <body> <div ng-controller="myController"> {{message}} <div ng
<html ng-app="myApp">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
<body>
<div ng-controller="myController">
{{message}}
<div ng-if=true>
{{message}}
<div outer style="background:yellow;padding:20px">
{{message}}
</div>
</div>
</div>
<script>
angular.module('myApp',[])
.controller('myController', function ($scope,$rootScope){
$scope.message="Football game";
})
.directive('outer', function() {
return {
scope: {},
link:{
post:function(scope,element){
scope.message="Basketball.game";
}
}
}
});
</script>
</body>
</html>
{{message}}
{{message}}
{{message}}
angular.module('myApp',[])
.controller('myController',函数($scope,$rootScope){
$scope.message=“足球比赛”;
})
.directive('outer',function(){
返回{
作用域:{},
链接:{
职位:职能(范围、要素){
scope.message=“Basketball.game”;
}
}
}
});
我得到了{{message}}足球比赛的所有实例
?我希望最后一个是Basketball Game
,因为编译器首先在outer的指令范围内搜索,它可以找到名为message
的属性,其中Basketball Game
作为值。为什么它不使用这个呢
这是因为最后一条消息是在myController范围内评估的,而不是在指令范围内评估的。指令作用域未知,因为您使用
作用域:{}
创建了一个独立的作用域,如果设置作用域:true
,它将按照您的想法执行,因为它将充当子作用域
使用隔离范围工作
{{message}}
{{message}}
{{message}}
angular.module('myApp',[])
.controller('myController',函数($scope,$rootScope){
$scope.message=“足球比赛”;
})
.directive('outer',function(){
返回{
作用域:{},
链接:{
职位:职能(范围、要素){
scope.message=“Basketball.game”;
}
},
模板:“这是指令{{message}}”,
}
});