如何将camelCase属性名称转换为angular的虚线大小的attrubute

时间:2015-10-31 10:31:16

标签: angularjs dom attributes

我有一个自定义的Angular服务,它使用angular.element()创建一个自定义DOM节点。同时,因为我还希望元素具有一组预定义属性,所以我将JS对象作为第二个参数传递给函数:

var element = angular.element('<node-name />', {
   class: "some css class",
   onclick: "someClickHandler()"
});

虽然这个属性不是特定于Angular的,但是可以正常工作。

问题在于我无法生成类似Angular的 虚线 不知道他们的实际名称是什么是)属性(例如ng-click)。

现在,如果我这样做:

 var element = angular.element('<node-name />', {ngClick: 'someClickHandler'});  // ng-click here is definitely not possible as it leads to a syntax error

它总是会导致DOM节点为:

<node-name ngclick="someClickHandler"></node-name>

没有使用Angular方式。

那么,是否有任何方法可以将camel-case属性转换为DOM中的等效虚线大小写?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

你真的不需要任何额外的代码来从camelCase转换为snake-case(尽管你可以)。如果你真的想要,最好首先使用snake-case,只需确保将属性名称放在引号中,否则名称不是有效的标识符:

var element = angular.element('<node-name />', {
    'ng-click': 'someClickHandler'
});