使用指令以驼峰命名法设置元素的属性值

Cha*_*thu 4 html javascript angularjs angularjs-directive

我正在尝试从这样的指令向 angularJs 元素添加属性:

element.attr('startOffset', val);
Run Code Online (Sandbox Code Playgroud)

但是当我检查元素时,添加的属性是“startoffset”,其中“o”不是大写字母。

有什么方法可以向元素添加属性并保持单词大小写不变吗?

谢谢

PSL*_*PSL 5

如果您使用 jqliteWrapper 设置属性.attr,甚至使用直接 DOM 操作.setAttribute,它会在附加到元素之前将属性名称小写。

当对 HTML 文档中的 HTML 元素调用时,setAttribute 将其属性名称参数小写。

由于您使用的是 SVG,请尝试使用 直接操作setAttribute,但是设置属性会保留其与 SVG 的大小写,不确定 jquery 是否在内部进行任何转换。

 element[0].setAttribute('startOffset', val);
Run Code Online (Sandbox Code Playgroud)

普林克尔


确认它是 Angular 之前的 jquery 包含,导致它在通过设置属性名称时不保留属性名称大小写.attr,但如果不包含 jquery 并且 Angular 回退到 jqLit​​e 它将按原样设置属性名称,这样就可以工作(attrs.$set除了直接 DOM 操作之外,还有 ) 和 SVG 。