我正在构建自定义AngularJS指令以创建Google地图,并且我已在我的代码中的自定义属性中存储了一些Google地图选项:
<googlemap zoom-control="true" …></googlemap>
Angular的指令编译方法有参数(tElement, tAttrs, transclude)
;当我将tAttrs
记录到控制台时,该对象具有名称已将连字符转换为camelCase的属性:
谁在做这个 - Angular或浏览器(在Firefox&amp; Chrome中检查过)?我能依靠这种行为吗?
P.S。当我检查DOM时,html元素的属性仍然有连字符。
答案 0 :(得分:7)
Angular正在这样做。是的,你可以信赖它:
来自Attributes页面:
指令编译/链接函数之间的共享对象,它包含规范化的DOM元素属性。值反映当前绑定状态{{}}。需要归一化,因为所有这些都被视为Angular中的等价物:
<span ng:bind="a" ng-bind="a" data-ng-bind="a" x-ng-bind="a">