用枚举声明属性?

时间:2015-07-03 05:56:29

标签: polymer polymer-1.0

我希望拥有一个属性,例如颜色,它只接受一组特定的颜色。

我希望能做到这样的事情:

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

我找不到任何关于声明属性中枚举的支持。是否可以通过根据我接受的值集手动检查值来实现此目的?

1 个答案:

答案 0 :(得分:2)

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

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;
  }
}