Javascript 使用两级指令的参数调用父函数
我在Angular中遇到了一个问题,我在控制器中声明了一个函数,我希望有一个指令能够调用这个函数。我使用指令范围中的Javascript 使用两级指令的参数调用父函数,javascript,angularjs,Javascript,Angularjs,我在Angular中遇到了一个问题,我在控制器中声明了一个函数,我希望有一个指令能够调用这个函数。我使用指令范围中的和引用父函数 当第一个指令中有另一个指令,并且内部指令也在控制器中引用此函数时,就会出现问题 可以从第一个指令和第二个指令中调用函数(如果函数没有参数)。可以从第一个指令而不是第二个指令(如果函数有参数)调用函数 此plnkr显示了它的作用: 这是一个bug还是我遗漏了什么? <directive-two increment="increment()" add="add({
和引用父函数
当第一个指令中有另一个指令,并且内部指令也在控制器中引用此函数时,就会出现问题
可以从第一个指令和第二个指令中调用函数(如果函数没有参数)。可以从第一个指令而不是第二个指令(如果函数有参数)调用函数
此plnkr显示了它的作用:
这是一个bug还是我遗漏了什么?
<directive-two increment="increment()" add="add({amount : amount})"></directive-two>
如果要传递函数,您有多个选项,我建议您查看本文
我用我最喜欢的选项更新了plnkr,存储函数引用并调用它,首先必须引用指令中的函数,而不在函数名称后添加括号,如下所示:
<directive-one increment="increment" add="add"></directive-one>
然后您可以像这样调用函数:
'<button ng-click="increment()()">Increment</button>' +
'<button ng-click="add()(5)">Add</button>' +
“增量”+
“添加”+
我更喜欢这个选项而不是发送json对象,我认为这样更干净。
它可以工作!我不明白为什么在将函数引用向下传递(从directiveOne传递到directiveTwo)时必须用JSON声明参数。它看起来非常冗长,如果你有一个包含两个以上参数的方法,HTML就会变得非常混乱。