Polymer 聚合物模板重复字段名

Polymer 聚合物模板重复字段名,polymer,Polymer,如何使用聚合重复模板动态获取此行数组对象的所有字段 rows = [{ "field1":"test1", "field2":"test2", "field3":"test3", "field4":"test4" }] <template repeat="{{data in rows}}"> {{data.field1}} {{data.field2}} {{data.field3}} {{data...}} </template>

如何使用聚合重复模板动态获取此行数组对象的所有字段

rows = [{
  "field1":"test1",
  "field2":"test2",
  "field3":"test3",
  "field4":"test4"
}]

<template repeat="{{data in rows}}">
   {{data.field1}}
   {{data.field2}}
   {{data.field3}}
   {{data...}}
</template>
行=[{
“field1”:“test1”,
“field2”:“test2”,
“field3”:“test3”,
“字段4”:“测试4”
}]
{{data.field1}}
{{data.field2}}
{{data.field3}}
{{数据…}}
狡猾的请求

我试过了,我最好的运气是这样的:

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

{{obj[field]}
聚合物({
obj:null,
密钥:[],
已创建:函数(){
this.obj={
字段1:1,
字段2:2,
字段3:3
};
this.keys=Object.keys(this.obj);
}
})
输出:1,2,3

顺便说一句:我不是100%确定你在描述中的意思,因为你的代码说行是对象的数组,而你说行是对象

无论如何,到目前为止一切都很好,上面的例子应该给出一个想法

BTW2:
{{data is rows}}
其中rows是一个对象,它将不起作用,因为它本质上是一个javascript
for in
。聚合物限制了我所理解的事物

这显示了两个例子:

  • 如何使用过滤器参数刷新重复。减少开销和 易于实现。建议在整个过程中使用事件操作 在可能的情况下,观察员

  • 如何将对象观察为数组(基于此问题注释 聚合物/聚合物表达式#11(评论))


  • 好的,谢谢,我请求了一个新的keys功能,使它更简单:)或者,创建一个对
    keys
    方法的本地引用:
    keys:Object.keys
    并在绑定中使用该方法:
    {fieldinkeys(obj)}
    。更动态。
    {{fieldin keys(obj)}}
    @DocDude该死,真聪明!我发现了一个问题,即它没有检测到对objSee的更改。请参见此相关问题:
    <!-- 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);
      }
    });