如何将驼峰式属性名称转换为 angular 的虚线式属性

How to convert camelCase attribute name to angular's dashed-case attrubute

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

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

虽然这可以正常工作,因为属性不是特定于 Angular。

问题是我无法生成 Angular-like dashed-case (不知道他们的真实姓名是什么) 属性(例如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 方式不同。

那么,在 DOM?

如有任何帮助,我们将不胜感激。

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

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