Javascript 函数(表达式)绑定不起作用

Javascript 函数(表达式)绑定不起作用,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我不明白为什么它不起作用 我试图将一个简单函数从父控制器绑定到子自定义指令。如果我使用&,它不起作用,但是如果我使用=或&绑定提供了一个包装函数来执行表达式。因此,dir.fn()所做的就是获取test属性 说, &or&attr-提供在父作用域上下文中执行表达式的方法。如果未指定属性名,则假定属性名与本地名相同 要使它按预期工作,它应该是 <my-directive fn="main.test()"></my-directive> 我希望这会有所帮助,关键是html

我不明白为什么它不起作用


我试图将一个简单函数从父控制器绑定到子自定义指令。如果我使用
&
,它不起作用,但是如果我使用
=
&
绑定提供了一个包装函数来执行表达式。因此,
dir.fn()
所做的就是获取
test
属性

说,

&or&attr-提供在父作用域上下文中执行表达式的方法。如果未指定属性名,则假定属性名与本地名相同

要使它按预期工作,它应该是

<my-directive fn="main.test()"></my-directive>


我希望这会有所帮助,关键是html中的属性绑定需要括号。我不太清楚为什么会这样;我确信这是一个微妙的角度,我错过了。在纯JS中,我认为
myFunction()
是执行函数,而
myFunction
是函数引用。你能解释一下吗?这是正确的想法。重要的是上下文
main.test()
表达式以未计算的方式传递给&binding,并在每次调用
dir.fn()
时进行计算。如果角度表达式中允许使用函数,那么同样的事情也可以通过
fn=“function(){return main.test()}”
来完成。
  <div ng-app="myApp" ng-controller="mainCtrl as main">
    <my-directive fn="main.test"></my-directive>
  </div>
<my-directive fn="main.test()"></my-directive>