我在Angular中遇到一个问题,我在控制器中声明了一个函数,我想要一个指令来调用这个函数。我使用指令范围中的&
来引用父函数。
当第一个指令内有另一个指令而内部指令也在控制器中引用此函数时,会出现问题。
可以在第一个指令和第二个指令中调用该函数(如果该函数没有参数)。该函数可以从第一个指令调用,而不是从第二个指令调用(如果函数有参数)。
这个plnkr显示了它的实际效果:
https://plnkr.co/edit/8E5oNvWcF0QQWL7pmxrD?p=preview
这是一个错误还是我错过了什么?
答案 0 :(得分:4)
答案 1 :(得分:0)
如果您传递的功能有多种选择,我建议您查看这篇文章http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-3-isolate-scope-and-function-parameters
我用我最喜欢的选项更新你的plnkr,存储一个函数引用并调用它,首先你必须引用指令上的函数而不在函数名之后添加括号,如下所示:
<directive-one increment="increment" add="add"></directive-one>
然后你可以调用这样的函数:
'<button ng-click="increment()()">Increment</button>' +
'<button ng-click="add()(5)">Add</button>' +
我更喜欢这个选项而不是发送json对象,我认为这更清晰。 https://plnkr.co/edit/Y3OJpMfcp5R05a8uk1av?p=preview