角度调用父函数,其参数来自两个级别深的指令
Angular call parent function with arguments from directive two levels deep
我在Angular中遇到了一个问题,我在控制器中声明了一个函数,我希望有一个指令能够调用这个函数。我使用指令范围中的&
来引用父函数。
当第一个指令中有另一个指令,并且内部指令也引用了控制器中的此函数时,就会出现问题。
函数可以从第一个指令和第二个指令中调用(如果函数没有参数)。函数可以从第一个指令调用,也可以从第二个指令调用NOT(如果函数有参数)。
这个plnkr显示了它的作用:
https://plnkr.co/edit/8E5oNvWcF0QQWL7pmxrD?p=preview
这是bug还是我遗漏了什么?
<directive-two increment="increment()" add="add({amount : amount})"></directive-two>
https://plnkr.co/edit/WvVcNIOJ8zKvFmchOQ5R?p=preview
如果您正在传递具有多个选项的函数,我建议您查看本文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
相关文章:
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 无法使以下ng on click outside指令在同一页面上的两个元素上工作
- 比较 AngularJS 指令中的两个整数
- angularjs在一个元素上有两个指令
- 角度调用父函数,其参数来自两个级别深的指令
- 两个指令引用一个变量,但第二个指令不引用;不要急于改变
- 比较 angularjs 指令中的两个字段
- 两个不同的角度指令会出现相同的模板
- 使用指令在 1000 条记录上的两个表之间进行角度拖放
- 具有两个模板容器的指令
- 在 Angular 中,在两个不同的指令之间传达匹配的$index
- 具有相同选项的角度两个(restrict:'A')指令
- 用两个指令解除禁令
- 一个指令的两个实例正在使用同一个模板实例
- angular.js两个指令,第二个指令不执行
- Angularjs:在两个指令之间失去作用域
- 如何将两个指令结合使用-angular translate&角截形
- 将两个指令组合在一起
- AngularJS-将两个指令绑定/链接在一起
- AngularJS-1指令,带有ng-if语句或两个指令