Cha*_*thu 4 html javascript angularjs angularjs-directive
我正在尝试从这样的指令向 angularJs 元素添加属性:
element.attr('startOffset', val);
Run Code Online (Sandbox Code Playgroud)
但是当我检查元素时,添加的属性是“startoffset”,其中“o”不是大写字母。
有什么方法可以向元素添加属性并保持单词大小写不变吗?
谢谢
如果您使用 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 回退到 jqLite 它将按原样设置属性名称,这样就可以工作(attrs.$set除了直接 DOM 操作之外,还有 ) 和 SVG 。