如何使用聚合物重复模板动态获取此行数组对象的所有字段?
rows = [{
"field1":"test1",
"field2":"test2",
"field3":"test3",
"field4":"test4"
}]
<template repeat="{{data in rows}}">
{{data.field1}}
{{data.field2}}
{{data.field3}}
{{data...}}
</template>
答案 0 :(得分:1)
狡猾的请求......
我试过,我最好的运气是这样的:
<polymer-element name="x-for-in">
<template>
<template repeat="{{field in keys}}">
{{obj[field]}}
</template>
</template>
<script>
Polymer({
obj : null,
keys : [],
created : function () {
this.obj = {
field1 : 1,
field2 : 2,
field3 : 3
};
this.keys = Object.keys(this.obj);
}
})
</script>
</polymer-element>
OUTPUT : 1,2,3
无论如何,到目前为止这么好,上面的例子应该给出一个想法。
BTW2:{{data is rows}}
其中行是一个对象 - 不起作用,因为它本质上是一个javascript for in
。聚合物限制了我理解的东西
答案 1 :(得分:1)
这个plunker显示了两个例子:
如何使用filter参数刷新重复。减少开销和 易于实施。建议使用事件操作 尽可能观察,
如何将对象视为数组(基于此问题的注释 聚合物/聚合物 - 表达#11(评论))
<!-- parameters passed to filters are observed, so changing refresh updates the repeat -->
<template repeat="{{key in objectData | toKeys(refresh)}}">
{{ objectData[key] }}
</template>
Polymer({
refresh: 0, // update this value to refresh the repeat
toKeys: function(input) {
if (!input) return;
return Object.keys(input);
}
});