我想在指令的scope参数中使用&
将函数传递给指令:
.directive('myDirective', function(){
return {
scope: {
'fn': '&',
},
link: function(scope,el, attrs){
console.log(scope.fn());
}
}
});
然后我调用link
中的函数并记录返回值。
在模板中,我传递一个函数,该函数应该只是警告“ok”进入指令:
<div ng-controller="MyController">
<div my-directive fn="myFn"></div>
</div>
代码在Plunkr中,但是它记录了函数而不是调用它:
function (){
alert('ok')
}
为什么不调用该函数?
答案 0 :(得分:2)
&
没有将函数传递给指令,它传递一个表达式。在该表达式中,您需要调用函数:
<div my-directive fn="myFn()"></div>
当只做myFn
时,Angular将评估表达式并返回函数的值。