我正在使用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
对象创建一个哈希...但是我该如何引用它?
答案 0 :(得分:0)
啊哈! publish
实际上在组件实例上可用!这允许我获取名称并制作从小写到camelcase的地图。
var map = {};
Object.keys(this.publish).forEach(function(key){
map[key.toLowerCase()] = key;
});