首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hyperHTML:自定义布尔属性

hyperHTML:自定义布尔属性
EN

Stack Overflow用户
提问于 2018-08-30 05:02:12
回答 1查看 144关注 0票数 2

有可能有一个自定义布尔属性吗?在布尔属性的hyperHTML文档中,它声明如下:

只要在需要的时候使用布尔属性,如果它是元素继承的一部分,它总是会做正确的事情。

这个片段不起作用:

代码语言:javascript
复制
this.html`<custom-element myboolean=${this.flag}></custom-element>`;

如果我需要custom作为一个布尔属性,我如何使它成为“元素继承的一部分”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-31 04:18:29

为了拥有继承的属性部分,您需要这样定义它。

使用自定义元素,简单地将属性定义为可观察属性并不会使其成为继承的属性,因此需要显式地配置它。

示例

代码语言:javascript
复制
customElements.define(
  'custom-element',
  class CustomElement extends HTMLElement {
    static get observedAttributes() {
      return ['myboolean'];
    }
    get myboolean() {
      return this.hasAttribute('myboolean');
    }
    set myboolean(value) {
      if (value) this.setAttribute('myboolean', true);
      else this.removeAttribute('myboolean');
    }
  }
);

一旦您有了这样的定义,您就会看到一切都像预期的那样正常工作,如本代码所示,钢笔

代码语言:javascript
复制
hyperHTML(document.body)`
  <custom-element myboolean=${false}>
    Boolean test
  </custom-element>
`;

或者,您可以通过HyperHTMLElement booleanAttributes定义自定义元素,以简化布尔属性的样板。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52089518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档