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>