访问儿童指令的范围参数

时间:2015-08-19 12:17:39

标签: javascript angularjs angularjs-directive

我是AngularJS的新手,在一个项目中使用了两个月。我已经学会了如何使用指令及其范围(false,true,obj literal),但是有一些问题......

首先,我们有一些ng-repeats和一些行为的指令,我试图在this link中提出一个等效的场景。

  1. 我没有弄清楚如何访问另一个指令testfn的指令子中的函数(ng-controller - myItemDirective内)。但是在myStepDirective中它可以访问,我试图像在第一个“层”中那样传递它但是没有用。

    PS.1:我为其他示例创建了一个带有隔离范围的myStepDirective,如果需要,只需取消注释即可进行测试。我都有办法从父(控制器)访问params / functions,但不是在孙子里面。

  2. 为什么指令的范围参数不适用于驼峰案例参数?我不记得在AngularJS文档中读到一些提示...... typewithnocase myItemDirective内部有效,但typeList没有。

  3. 谢谢!

1 个答案:

答案 0 :(得分:1)

EDITED] 对于你的1.这是一个工作小提琴,范围有限,骆驼转换为蛇案:https://jsfiddle.net/wu0avqau/ 我花了很多时间不理解为什么它没有用,但是你在你的第二个指令中忘记了= =

ng-click"testfn()"

对于你2.我可以参考文档:https://docs.angularjs.org/guide/directive

  

正常化

     

Angular对元素的标记和属性名称进行规范化,以确定哪些>元素与哪些指令匹配。我们通常通过其case->敏感的camelCase规范化名称(例如ngModel)来引用指令。但是,由于HTML是大小写不敏感的,我们通过小写形式引用DOM中的指令,通常是>使用DOM元素上的划线分隔属性(例如ng-model)。

     

规范化过程如下:

     

从元素/属性的前面剥离x-和data-   将:, - 或_分隔的名称转换为camelCase。“

基本上你的myItemDirective将是你模板中的my-item-directive,但仍然是你的js中的myItemDirective。

祝你好运,
Thibaud Lamarche