聚合物camelCase属性

时间:2015-03-21 02:43:59

标签: attributes polymer

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

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

声明元素

<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对象创建一个哈希...但是我该如何引用它?

1 个答案:

答案 0 :(得分:0)

啊哈! publish实际上在组件实例上可用!这允许我获取名称并制作从小写到camelcase的地图。

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