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

标签 javascript scope angularjs

我有一个指令,然后作为其模板的一部分使用内部指令。当我的内部指令中发生某件事时,我想调用父指令范围内的函数。我认为指令上 scope 属性的“&”适合这种情况。但是,当我尝试调用该函数时,父指令中的函数永远不会被调用。请参阅此处的 jsFiddle:http://jsfiddle.net/hdm3Q/

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

最佳答案

parentFunctionparent-function 之间的名称转换正在进行。

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

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

工作 fiddle :http://jsfiddle.net/p2dtC/

关于javascript - 为什么我的父指令和子指令之间有额外的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13075683/

相关文章:

php - 更改 PHP 类函数的隐私范围

javascript - fb.init fb 未定义

javascript - 阻止子元素的父元素函数onclick

javascript - 解析 CloudCode 的执行顺序

javascript - vue-tables-2 中未考虑自定义模板

javascript - 与函数工厂和关闭作斗争

variables - 如何访问过程之外的变量

javascript - jQuery UI Buttonset 不向子元素添加类

angularjs - Protractor browser.driver.getCurrentUrl 与 browser.getCurrentUrl

javascript - angularjs 在 templateUrl 中使用变量