Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用两级指令的参数调用父函数_Javascript_Angularjs - Fatal编程技术网

Javascript 使用两级指令的参数调用父函数

Javascript 使用两级指令的参数调用父函数,javascript,angularjs,Javascript,Angularjs,我在Angular中遇到了一个问题,我在控制器中声明了一个函数,我希望有一个指令能够调用这个函数。我使用指令范围中的和引用父函数 当第一个指令中有另一个指令,并且内部指令也在控制器中引用此函数时,就会出现问题 可以从第一个指令和第二个指令中调用函数(如果函数没有参数)。可以从第一个指令而不是第二个指令(如果函数有参数)调用函数 此plnkr显示了它的作用: 这是一个bug还是我遗漏了什么? <directive-two increment="increment()" add="add({

我在Angular中遇到了一个问题,我在控制器中声明了一个函数,我希望有一个指令能够调用这个函数。我使用指令范围中的
引用父函数

当第一个指令中有另一个指令,并且内部指令也在控制器中引用此函数时,就会出现问题

可以从第一个指令和第二个指令中调用函数(如果函数没有参数)。可以从第一个指令而不是第二个指令(如果函数有参数)调用函数

此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就会变得非常混乱。