nov*_*ain 0 html javascript angularjs
我有一个angular的指令和一个绑定到范围变量的表单.码:
<my-directive></my-directive>
<form>
<input ng-model="username" required>
</form>
Run Code Online (Sandbox Code Playgroud)
指示:
.directive('myDirective', function(){
restrict : 'E',
controller: function($scope){
console.log($scope.username); // Displays user name, same scope!!!
},
link: function(scope, element, attrs){
// Other codes
},
templateUrl: "templates/my-template-url.html"
}
})
Run Code Online (Sandbox Code Playgroud)
用户名变量可以在我的指令中的控制器内部到达.这不是我预期的原因,因为我关闭指令并且他们不应该共享相同的范围?
为什么这样做?
那你正在使用scope:false.它可以访问和更改它的父范围.
因此,您的节点范围在此处无关紧要,因为username它位于父范围内.
<my-directive></my-directive>
<form>
<input ng-model="username" required>
</form>
Run Code Online (Sandbox Code Playgroud)
如果您不想访问父作用域,则创建一个隔离范围
像这样
.directive('myDirective', function(){
restrict : 'E',
scope : {},
controller: function($scope){
console.log($scope.username); // Displays user name, same scope!!!
},
link: function(scope, element, attrs){
// Other codes
},
templateUrl: "templates/my-template-url.html"
}
})
Run Code Online (Sandbox Code Playgroud)