Polymer 使用枚举声明的属性?

Polymer 使用枚举声明的属性?,polymer,polymer-1.0,Polymer,Polymer 1.0,我想要一个属性,比如颜色,它只接受一组特定的颜色 我希望做这样的事情: properties: { color: { type: String, enum: ['red', 'blue'] } } 我在声明的属性中找不到任何有关枚举支持的信息。通过手动检查接受值集的值是否是实现此功能的唯一方法?没有内置的枚举支持,但您可以通过观察者执行此操作: properties: { color: { type: String, defa

我想要一个属性,比如颜色,它只接受一组特定的颜色

我希望做这样的事情:

properties: {
    color: {
        type: String,
        enum: ['red', 'blue']
    }
}

我在声明的属性中找不到任何有关枚举支持的信息。通过手动检查接受值集的值是否是实现此功能的唯一方法?

没有内置的枚举支持,但您可以通过观察者执行此操作:

properties: {
  color: {
    type: String,
    default: 'red',
    observer: '_enumColor'
  }
},
_enumColor: function(newValue, oldValue) {
  var validColors = ['red','green','blue'];
  if(validColors.indexOf(newValue) === -1) {
    // Put the color back, and maybe throw in a line to throw an error
    this.color = oldValue;
  }
}