4

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

<googlemap zoom-control="true" …&gt;</googlemap>

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

扩展的 $tAttrs 对象的 Chrome 开发工具的屏幕截图(属性名称已转换为有效格式)

谁在做这件事——Angular 还是浏览器(在 Firefox 和 Chrome 中检查)?我可以依靠这种行为吗?

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

4

1 回答 1

7

Angular 正在这样做。是的,您可以依赖它:

属性页面:

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

于 2013-01-12T02:29:02.400 回答