<input type='text' ng-model='foo' my-dir='customFunction' />
{{foo}}
.directive('myDir',function(){
scope:{ customFunc : "&myDir"},
});
现在范围将被覆盖myDir
并且 foo 不会在屏幕上更新。但是每个具有my-dir
属性的控件仍然应该customFunction
在一个孤立的范围内。
可能吗?
<input type='text' ng-model='foo' my-dir='customFunction' />
{{foo}}
.directive('myDir',function(){
scope:{ customFunc : "&myDir"},
});
现在范围将被覆盖myDir
并且 foo 不会在屏幕上更新。但是每个具有my-dir
属性的控件仍然应该customFunction
在一个孤立的范围内。
可能吗?
正如上面评论中提到的,一个指令可能不会在任何地方都有效。如果该指令将与其他指令(如 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';
}