2017-04-10 55 views
1

在聚合物1.0,我可以聲明與屬性:如何訪問Google Polymer 2中的「屬性」?

properties: { 
    salary: { 
     type: Number, 
     value: 80 
    } 
} 

現在,在聚合物2.0(創建一個類),我應該寫等的方法:

static get properties() { 
    return { 
     salary: { 
      type: Number, 
      value: 80 
     } 
    } 
} 

但現在this.propertiesnull。如何訪問properties字段(而不是properties的值)?

回答

0

this.properties嘗試訪問實例字段(排除靜態字段)。由於propertiesstatic字段,因此您必須使用this.constructor.propertiesXFoo.properties

例子:

class XFoo extends Polymer.Element { 
    static get properties() { ... } 

    constructor() { 
    super(); 

    // this.constructor === XFoo 
    console.log('this.constructor.properties', this.constructor.properties); 
    console.log('XFoo.properties', XFoo.properties); 
    } 
} 

codepen

+0

非常好!顯然,我理解靜態和實例字段之間的區別:我的問題是訪問行爲中的屬性(用類mixin的新方法),我無法知道(派生)類的名稱。要說清楚,參考你的例子,我不能用你的第二種方法,但第一種方法是完美的!非常感謝你! :-) – Andrea