Как получить доступ к наблюдаемым атрибутам на веб-компонентах - PullRequest
0 голосов
/ 21 ноября 2018

Таким образом, в веб-компонентах вы можете использовать attributeChangedCallback , как только у вас есть определенные атрибуты для наблюдения с использованием static get observedAttributes() { return ['myAttribute']; }.

Как я могу просмотреть / получить доступ к наблюдаемым атрибутам из моего подкласса?

class Foo extends HTMLElement {
    connectedCallback() {
        console.log(this.observedAttributes); // <= undefined
    }
}

class Bar extends Foo {
    static get observedAttributes() {
        return ['bar'];
    }
}

Возможно ли это как-то?Есть ли геттер для наблюдаемых атрибутов?Я думаю, что трудность здесь заключается в получении observed attributes родительского класса.Потому что если бы он был в том же классе, вы могли бы просто Foo.observedAttributes, как упомянул @javimovi.

Я добавил jsbin для игры с: https://jsbin.com/sonekedavo/edit?js,console

Спасибо!

1 Ответ

0 голосов
/ 21 ноября 2018

Найдено !: Можно использовать constructor:

Возвращает ссылку на функцию конструктора Object, которая создала объект экземпляра

Используя упомянутый примердо.

class Foo extends HTMLElement {
  connectedCallback() {
    console.log(this.constructor.observedAttributes); // <= ['bar']
  }
}

class Bar extends Foo {
  static get observedAttributes() {
    return ['bar'];
  }
}
...