我有一个自定义的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中的等效虚线大小写?
任何帮助都将不胜感激。
答案 0 :(得分:0)
你真的不需要任何额外的代码来从camelCase转换为snake-case(尽管你可以)。如果你真的想要,最好首先使用snake-case,只需确保将属性名称放在引号中,否则名称不是有效的标识符:
var element = angular.element('<node-name />', {
'ng-click': 'someClickHandler'
});