1

我想知道是否可以为组件元素本身分配一个类。

假设我有这个组件:

<html>
  <body>
    <element name="x-preview" constructor="PreviewComponent" extends="div" class="preview">
      <template>
        <div class="preview">

        </div>
      </template>
    </element>
  </body>
</html>

现在我希望能够删除<div class="preview">里面的元素,因为我已经有了包装x-previewdiv。简单地设置class="preview"<element>行不通的。

有可能这样做吗?

4

1 回答 1

3

我知道您有两个选择:

1)在任何你使用它的地方分配类:

<div is="x-preview" class="preview"></div>

此方法的问题在于,如果您更改类名,则必须在使用组件的任何地方更改它。

2)使用插入的生命周期方法将类添加到根元素:

void inserted() {
  getShadowRoot('x-preview').attributes['class'] = 'preview';
}

每当将组件添加到 DOM 时,都会调用 insert()。getShadowRoot() 将获取组件的根元素,然后将类设置为“预览”。这种方法的优点是您只需在一个位置更改类。

于 2013-06-09T19:18:11.630 回答