【发布时间】:2013-06-26 18:45:48
【问题描述】:
在我扩展 WebComponent 的类中,是否有一种标准方法可以访问表示该实例根的 DOM 元素?
【问题讨论】:
标签: dart dart-webui
在我扩展 WebComponent 的类中,是否有一种标准方法可以访问表示该实例根的 DOM 元素?
【问题讨论】:
标签: dart dart-webui
是的,您可以使用 getShadowRoot():
getShadowRoot('x-some-component').style.color = '#F00';
【讨论】:
有两种方法。首先是使用_root。第二种选择是使用 Pixel Elephant 提到的getShadowRoot()。
一些旧代码依赖于_root,但不要使用它,因为它已被弃用并且即将消失。 getShadowRoot() 也更适合在 IDE 中自动完成。
这是你应该做的:
getShadowRoot('x-your-element').classes.add('your-element');
【讨论】:
x-your-element 只是 Web 组件的名称,例如:<element name="x-your-element" ...>。
我不知道这是否是一个好方法,
但我使用这样的东西:
inserted() {
var root = shadowRoot != null? shadowRoot: this;
var element = root.query("something in the webcomponent dom");
element.text = "Hello from webcomponent";
}
此代码符合 shadow dom 和标准方式。
【讨论】: