为什么我的父指令和子指令之间有额外的范围?

时间:2012-10-25 19:19:42

标签: javascript scope angularjs

我有一个指令,然后作为其模板的一部分使用内部指令。当我的内部指令中发生某种事情时,我想在父指令的范围内调用一个函数。我以为'&'对于这种情况,指令上的scope属性。但是,当我尝试调用该函数时,父指令中的函数永远不会被调用。在这里查看jsFiddle:http://jsfiddle.net/hdm3Q/

调试时,我发现内部指令范围的$parent与父指令的范围不同。直到我scope.$parent.$parent我找到了外部指令的范围。那么,为什么这个额外的范围呢?如何在父作用域上调用该函数。我真的很想在这些指令中有孤立的范围。对此有任何帮助将非常感激。

1 个答案:

答案 0 :(得分:1)

正在发生parentFunctionparent-function之间的名称翻译。

在您的指令中,您应该使用名称的连字符版本。 此规则适用于所有角度html属性。

<div child parent-function="parentFunction()"></div>

工作小提琴:http://jsfiddle.net/p2dtC/