Javascript 调用传递到Angular指令中的函数将返回该函数,而不是调用它
我想使用指令范围参数中的Javascript 调用传递到Angular指令中的函数将返回该函数,而不是调用它,javascript,angularjs,Javascript,Angularjs,我想使用指令范围参数中的&将函数传递到指令: .directive('myDirective', function(){ return { scope: { 'fn': '&', }, link: function(scope,el, attrs){ console.log(scope.fn()); } } }); 然后调用链接中的函数,并记录返回值 在模板中,我将一个函数传递给指令,该函数只应发出“ok”警报: <
&
将函数传递到指令:
.directive('myDirective', function(){
return {
scope: {
'fn': '&',
},
link: function(scope,el, attrs){
console.log(scope.fn());
}
}
});
然后调用链接中的函数
,并记录返回值
在模板中,我将一个函数传递给指令,该函数只应发出“ok”警报:
<div ng-controller="MyController">
<div my-directive fn="myFn"></div>
</div>
它为什么不调用函数?
&
不会将函数传递到指令中,而是传递表达式。在该表达式中,您需要调用函数:
<div my-directive fn="myFn()"></div>
仅执行myFn
Angular时,将计算表达式并仅返回函数值
<div my-directive fn="myFn()"></div>