我正在从0.5迁移到1.0。
在阅读时,我注意到使用hostAttributes
和properties
声明属性的两种不同方式。
这两者之间有什么区别?
答案 0 :(得分:5)
主机属性是与元素的相应Javascript属性(您在properties
中声明)不匹配的属性。这包括class
,tabindex
,data-*
属性,aria-roles等属性。要在创建时声明它们,必须在hostAttributes
对象中设置它们。如果要将值绑定到其中,则必须使用$=
(调用Element.setAttribute
)而不是=
。
来源:
答案 1 :(得分:0)
如果自定义元素需要在创建时在其上设置HTML属性,则可以在原型的hostAttributes属性中声明该属性,其中键是属性名称,值是要分配的值。
但是现在由于侦听器和hostAttributes已从元素元数据中删除
我们可以使用_ensureAttribute作为定义此类属性的替代方法
例如:-
this._ensureAttribute('tabindex',0); 您可以在就绪状态下声明所有此类属性