我是AngularJS的新手,在一个项目中使用了两个月。我已经学会了如何使用指令及其范围(false,true,obj literal),但是有一些问题......
首先,我们有一些ng-repeats
和一些行为的指令,我试图在this link中提出一个等效的场景。
我没有弄清楚如何访问另一个指令testfn
的指令子中的函数(ng-controller
- myItemDirective
内)。但是在myStepDirective
中它可以访问,我试图像在第一个“层”中那样传递它但是没有用。
PS.1:我为其他示例创建了一个带有隔离范围的myStepDirective
,如果需要,只需取消注释即可进行测试。我都有办法从父(控制器)访问params / functions,但不是在孙子里面。
为什么指令的范围参数不适用于驼峰案例参数?我不记得在AngularJS文档中读到一些提示...... typewithnocase
myItemDirective
内部有效,但typeList
没有。
谢谢!
答案 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。
祝你好运,