<input type='text' ng-model='foo' my-dir='customFunction' />
{{foo}}
.directive('myDir',function(){
scope:{ customFunc : "&myDir"},
});
现在,范围将被myDir
覆盖,foo将不会在屏幕上更新。但是,具有my-dir
属性的每个控件仍应在隔离范围内具有customFunction
。
有可能吗?
答案 0 :(得分:3)
正如上面的评论中所提到的,一个指令可能无处不在。如果该指令将与ng-model,ng-repeat等其他指令一起使用,则隔离范围可能不起作用。以下是使用$eval的指令示例,但不创建新范围:
<div ng-controller="MyCtrl">
<input type='text' ng-model='foo' my-dir='customFunction'>
<br>foo={{foo}}
</div>
app.directive('myDir', function() {
return {
link: function(scope, element, attrs) {
scope.$eval(attrs.myDir);
},
}
});
function MyCtrl($scope) {
$scope.customFunction = alert('hi');
$scope.foo = '22';
}