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

jac*_*cob 4 html json hyphenation angularjs

我正在构建一个自定义的AngularJS指令来创建一个谷歌地图,我已经在我的标签中的自定义属性中存储了一些谷歌地图选项:

<googlemap zoom-control="true" …></googlemap>
Run Code Online (Sandbox Code Playgroud)

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

来自Chrome Dev Tools的扩展$ tAttrs对象的屏幕截图(属性名称已转换为有效格式)

谁在做Angular或浏览器(在Firefox和Chrome中检查过)?我可以依靠这种行为吗?

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

Mar*_*cok 7

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

从" 属性"页面:

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