我想在指令的作用域参数中使用&
将一个函数传递给指令:
.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')
}
为什么不调用函数?
&
不传递一个函数到指令,它传递一个表达式。在该表达式中,您需要调用以下函数:
<div my-directive fn="myFn()"></div>
当只做myFn
时,Angular将计算表达式并只返回函数的值。