确认它是jquery inclusion before angular,这导致它在通过.attr设置属性名称时不保留属性名称大小写,但如果您不包括jquery并且angular福尔斯退到jqLite,它将按原样设置属性名称,因此除了直接DOM操作外,这将与SVG一起工作(与attrs.$set沿着)。
var att = document.createAttribute("newName"); // Create a "newName" attribute
att.value = newName; // Set the value of the newName attribute
parent_tag.setAttributeNode(att);
4条答案
按热度按时间6gpjuf901#
如果你使用jqliteWrapper
.attr
或者直接使用DOM操作.setAttribute
来设置一个属性,在附加到元素之前,它会将属性名小写。当在HTML文档中的HTML元素上调用setAttribute时,它的属性名称参数将小写。
由于您使用的是SVG,请尝试使用
setAttribute
直接操作,但是设置属性会保留SVG的大小写,不确定jquery是否在内部进行任何转换。Plnkr
确认它是jquery inclusion before angular,这导致它在通过
.attr
设置属性名称时不保留属性名称大小写,但如果您不包括jquery并且angular福尔斯退到jqLite,它将按原样设置属性名称,因此除了直接DOM操作外,这将与SVG一起工作(与attrs.$set
沿着)。n3ipq98p2#
我在主div中创建了命名空间:
然后我通过setAttributeNS在TS代码中插入html-element(element)的属性(当然,在JS中也是可能的):
该属性出现在html-template中
cld4siwp3#
setAttributeNS使用给定的命名空间和名称添加新属性或更改属性的值
element.setAttributeNS(namespace,name,value)
namespace是指定属性的命名空间的字符串。name是一个字符串,通过限定名标识属性;即名称空间前缀后跟冒号,然后是本地名称。value是新属性的所需字符串值。
w6lpcovy4#
这对我来说很有效->