如何在Polmyer 2.x中获取mixin中所有属性的列表?

时间:2016-12-19 20:21:22

标签: polymer polymer-2.x

我有一个mixin和一个使用它的类,但在mixin(或类本身)中,我似乎无法获得所有属性的列表。 this.configundefined,而this.constructor.config仅提供当前类中的属性列表(不是mixin本身的属性列表)。

有关更详细的示例,请参阅下文。

const myMixin = subclass => class extends subclass {

    static get config() {
        return {
            properties: {
                mixInVariable: {
                    type: String,
                }
            }   
        }
    }   

    constructor() {
        super();
        console.log(this.constructor.config.properties);
    }

}

class ContainerGrid extends myMixin(Polymer.Element) {

    static get is() { return 'container-grid' }

    static get config() {
        // properties, observers meta data
        return {
            properties: {
                something: {
                    type: String
                }
            }
        };
    }

}

customElements.define(ContainerGrid.is, ContainerGrid);

在控制台中,我只看到变量something。如何获取所有属性的列表(例如mixInVariablesomething)?

1 个答案:

答案 0 :(得分:1)

constructor,使用super.constructor.config.properties访问继承的属性。

class XFoo extends MyMixin(Polymer.Element) {
  ...

  constructor() {
    super();
    console.log('constructor(): ', super.constructor.config.properties);
  }
}

get properties()开始,使用super.config.properties

class XFoo extends MyMixin(Polymer.Element) {
  ...

  static get properties() {
    console.log('get properties(): ', super.config.properties);
  }
}

codepen