【问题标题】:HTML element attribute names with hyphens are auto-converted to camelcase带有连字符的 HTML 元素属性名称会自动转换为驼峰式
【发布时间】:2012-12-26 16:50:49
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: json angularjs html hyphenation


    【解决方案1】:

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

    来自Attributes 页面:

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

    【讨论】:

    • 谢谢!我尝试在文档中搜索“连字符”和“破折号”,但从未得到该页面。我知道 ng:bind vs ng-bind vs data-ng-bind 但我没有意识到 Angular 会将属性名称转换为 json 友好的名称。顺便说一句,我正在使用该服务并且它工作得很好(但我想看看我是否可以用“Angular 方式”来做到这一点)。
    • @jacob 我昨天再次查看了您的服务...您最好保持原样。我不确定如何向 HTML 添加指令,然后封装执行 DOM 操作的 addListner 内容,因为所有 HTML 都是由 Google API 添加的。 (对于其他读者,我们正在讨论this service)。
    • 好的,谢谢。我会将它添加到积压的末尾,以便在其他所有操作完成后查看它。谢谢!
    猜你喜欢
    • 2011-10-03
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    相关资源
    最近更新 更多