HTML element attribute names with hyphens are auto

2019-06-23 22:44发布

I'm building a custom AngularJS directive to create a google map, and I've stored some of the google map options in custom attributes within my tag:

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

Angular's directive compile method has parameters (tElement, tAttrs, transclude); when I log tAttrs to the console, the object has properties with names that have converted hyphens to camelCase:

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

Who is doing this—Angular or the browser (checked in Firefox & Chrome)? Can I rely on this behaviour?

P.S. When I check the DOM, the attributes of the html element still have hyphens.

1条回答
Lonely孤独者°
2楼-- · 2019-06-23 23:30

Angular is doing it. Yes you can rely on it:

From the Attributes page:

A shared object between directive compile / linking functions which contains normalized DOM element attributes. The the values reflect current binding state {{ }}. The normalization is needed since all of these are treated as equivalent in Angular:
<span ng:bind="a" ng-bind="a" data-ng-bind="a" x-ng-bind="a">

查看更多
登录 后发表回答