如何处理在Polymer中可以是String或Object的属性?

时间:2017-07-24 20:05:21

标签: polymer web-component mapbox-gl-js polymer-2.x

尝试用mapbox-gl-js创建聚合物网络组件。

我想在Polymer Custom Element上使用属性设置circle-color paint属性(https://www.mapbox.com/mapbox-gl-js/style-spec/#paint-circle-color),但是此属性可以是字符串OR对象,请参阅:

"circle-color": "#ff0"

或在数据驱动的属性

的情况下
"circle-color": {
    "property": "temperature",
    "stops": [

      // "temperature" is 0   -> circle color will be blue
      [0, 'blue'],

      // "temperature" is 100 -> circle color will be red
      [100, 'red']

    ]
  }

那么我应该在Polymer组件的属性函数中使用什么?字符串或对象?

class XCustom extends Polymer.Element {

  static get properties() {
    return {
      circle-color: String,
      // or circle-color: Object ?
    }
  }
}

customElements.define('x-custom', XCustom);

感谢您的帮助! (我已经检查了https://www.webcomponents.org/element/PolymerVis/mapbox-gl,它没有完成这项工作)

1 个答案:

答案 0 :(得分:3)

这并不重要。您可以存储两者,但为了清楚起见,将其存储为对象,如果变量是字符串,则将其存储为对象。