2017-04-02 119 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})