5

Polymer 网站在 Polymer 中使用“扩展”属性不支持多重继承(或组合)。我希望一个元素由一个 Polymer 元素的一些方法和另一个 Polymer 元素的一些方法组成,以使其反映应用程序逻辑。目前有什么方法可以在 Polymer 中实现它吗?(就像使用 javascript mixins 一样)

4

3 回答 3

7

Polymer 现在支持 mixin:

var mixinObj = {
   foo: function() {
     /* ... */
   }
};

var mixinObj2 = {
   foo2: function() {
     /* ... */
   }
};


Polymer('my-component', Polymer.mixin({   // Platform.mixin for polymer version < 0.5
  bar: function() {

     /* ... */
     this.foo();   // all the functions in mixinObjs are now accessible through 'this'   
     this.foo2();   



  }


}, mixinObj, mixObj2);  // Platform.mixin accepts multiple mixin objects

更多信息在这里

于 2014-06-09T20:33:57.630 回答
2

我无法说出 Polymer 人的推理,但通常认为使用组合比继承更可取。

于 2014-05-14T20:40:09.727 回答
0

Polymer 支持 Mixin 概念以克服多重继承概念。

例子 :

Class ElementOne extends Polymer.Element {
   ready() {
     super.ready();   
   }
}

Class ElementTwo extends Polymer.Element {
  ready() {
     super.ready();
  }
}

Class ElementThree extends ElementOne(ElementTwo(Polymer.Element)) {
  ready() {
     super.ready();
  }
}

我希望它对你有帮助。

于 2018-01-25T13:40:13.227 回答