聚合物1.0中的dom-repeat里面的内容?

时间:2015-07-31 22:11:53

标签: javascript dom data-binding polymer

我的问题是我找不到使用Canvas标记绑定数据的方法。我想创建一个表元素,其中只传递一组标题和表示要使用的数据的对象数组。

我显示数据的代码如下:

<content>

但是如果我使用这种方式,只有当行具有Id或Descripcion属性时,我的表元素才会起作用。
我想做这样的事情:

<template is="dom-repeat" items="{{rows}}">
    <td>{{item.Id}}</td><td>{{item.Descripcion}}</td>
</template>

所以,当我调用我的table元素应该是这样的:

<template is="dom-repeat" items="{{rows}}">
    <content></content><!--dynamic item-->
</template>

其中<my-table titles="[arrayOfTitles]" rows="[arrayOfRows]"> <td>{{item.propertyOne}}</td><td>{{item.propertyTwo}}</td><td>{{item.propertyN}}</td> </my-table> 将在其中包含数据。
这听起来很疯狂?有可能吗?

我尝试过使用<td></td>功能,但我不知道如何使用它来做我想要的事情。对不起我的英语不好。谢谢!任何帮助都会很棒!

修改

当我使用我的元素时,如下所示:

getDistributedNodes

现在,问题是如何使用更复杂的对象,当我使用对象或数组时,它们显示如下: enter image description here
正如你所看到的,当我使用对象或数组显示[object Object]时,是否知道如何构造我的表声明以指示它是否有对象?我想做这样的事情: enter image description here

我的<my-table api-url="../../api/feeApi" headers='[{"title":"Id"},{"title":"Descripción"},{"title":"Abreviatura"},{"title":"Tipo"},{"title":"Monto($)"},{"title":"Cobrar a"}]' keys='["Id","Descripcion","ShortName","FeeType","Monto","NivelesEscolares"]' number-visible-rows="10"> </my-table> 就像@so_confused_所说:

<tbody>

2 个答案:

答案 0 :(得分:2)

        <tbody>
            <template is="dom-repeat" items="{{visibleRows}}" id="tableRow" as="row">
                <tr on-tap="rowSelected" class$="{{getClass(row.active)}}" style="cursor:cell;">
                    <template is="dom-repeat" items="{{headers}}" id="tableRow2" as="column">
                        <template is="dom-if" if="{{areEquals(column.type, 'object')}}">
                            <td>{{getObjectValue(column,row)}}</td>
                        </template>
                        <template is="dom-if" if="{{areEquals(column.type, 'array')}}">
                            <td>
                                <template is="dom-repeat" items="{{getDataArray(column,row)}}">
                                    <li>{{getArrayValue(item,column)}}</li>
                                </template>
                            </td>
                        </template>
                        <template is="dom-if" if="{{areEquals(column.type, 'text')}}">
                            <td>{{getValue(column,row)}}</td>
                        </template>
                    </template>
                </tr>
            </template>
        </tbody>

根据列的类型调用相应的函数。

答案 1 :(得分:1)

如果您不是一直使用相同的密钥进行渲染,您可以将输入用作数组数组吗?

如果你有一个数组:picker那么你可以通过迭代嵌套数组来呈现不同长度的行

arr = [["one","two","three","four"],["one","two"],["one","two","three"]];