带连字符的HTML元素属性名称会自动转换为camelcase

时间:2013-01-12 02:06:27

标签: json angularjs html hyphenation

我正在构建自定义AngularJS指令以创建Google地图,并且我已在我的代码中的自定义属性中存储了一些Google地图选项:

<googlemap zoom-control="true" …></googlemap>

Angular的指令编译方法有参数(tElement, tAttrs, transclude);当我将tAttrs记录到控制台时,该对象具有名称已将连字符转换为camelCase的属性:

screenshot from Chrome Dev Tools of the expanded $tAttrs object (property names have been converted to valid format)

谁在做这个 - Angular或浏览器(在Firefox&amp; Chrome中检查过)?我能依靠这种行为吗?

P.S。当我检查DOM时,html元素的属性仍然有连字符。

1 个答案:

答案 0 :(得分:7)

Angular正在这样做。是的,你可以信赖它:

来自Attributes页面:

  

指令编译/链接函数之间的共享对象,它包含规范化的DOM元素属性。值反映当前绑定状态{{}}。需要归一化,因为所有这些都被视为Angular中的等价物:
    <span ng:bind="a" ng-bind="a" data-ng-bind="a" x-ng-bind="a">