Polymer camelCase 属性

Polymer camelCase attributes

我正在使用 Polymer 组件围绕 js 库编写包装器。基本上,我需要能够将属性分配给组件,并将它们转发给 js 对象的实例。

问题是 Polymer(或一般的 webcomponents?)强制属性名称为小写。

声明元素

<some-element fooBar="baz"></some-element>

通用更改侦听器

attributeChanged: function(attrName, oldVal, newVal){
    // attrName -> foobar, which is not a member of someInstance
    this.someInstance[attrName] = newVal;
}

有什么方法可以得到驼峰命名吗?也许我可以从原型上的 publish 对象创建一个散列...但我如何引用它?

啊哈! publish 实际上在组件实例上可用!这使我可以抓取名称并制作从小写到驼峰的映射。

var map = {};
Object.keys(this.publish).forEach(function(key){
    map[key.toLowerCase()] = key;
});