2017-04-02 160 views
1

我正在嘗試爲類似下面的東西創建一個用於Polymer 2.0組件(基於類的語法)的混合。有沒有辦法按照我現在正在做的方式將選項傳遞給班級?將參數傳遞給一個類

與混入高分子元素定義:

class PodcastListView extends PolymerApolloBehavior(Polymer.Element, myOptions) { 
    //some code 
} 

的混合類:

export const PolymerApolloBehavior = (superclass, options) => class extends superclass { 
    constructor() { 
     console.log(options); 
    } 
} 

回答

1

我可以建議你發揮作用的方式包裝爲您PodcastListView類,將使得新以新的行爲。它會是這個樣子:

export const PolymerApolloBehavior = (original, options) => { 
    let result = Object.assign({}, original) 
    const originalConstructor = result.prototype.constructor 
    result.prototype.constructor =() => { 
    console.log(options) // your behavior 
    originalConstructor() // original constructor 
    } 
    // any changes of class 
    return result 
} 

現在你可以將你的新行爲:

export default PolymerApolloBehavior(PodcastListView, {behaviorOptions})