0

所以,我有这样的数据:

data: {
  0: {
    id: 1
    name: Config1
    devices: {
      data: {
        0: {
          id: 1
          ip_address: 192.168.11.1
        },
        1: {
          id: 2
          ip_address: 192.168.11.2
        },
        ..
    },
  },
  1: {
    id: 2
    name: Config2
    devices: {
      data: {
        0: {
          id: 1
          ip_address: 192.168.11.3
        },
        1: {
          id: 2
          ip_address: 192.168.11.4
        },
        2: {
          id: 3
          ip_address: 192.168.11.5
        },
        ..
    },
  },
  ..
}

假设我想在 中显示它<iron-data-table>,我期待这样:

Config Name | IP Address
Config1 | 192.168.11.1 - 192.168.11.2
Config2 | 192.168.11.3 - 192.168.11.4 - 192.168.11.5

而且,这是当前代码:

<iron-ajax url="data" last-response="{{response}}" auto></iron-ajax>

<iron-data-table items="[[response.data]]">
  <data-table-column name="Config Name">
    <template>[[item.name]]</template>
  <data-table-column>

  <data-table-column name="IP Address">
    <template is="dom-repeat items="[[item.devices.data]]" as="dev">
      [[dev.ip_address]]
    </template>
  <data-table-column>

</iron-data-table>

问题是,没有显示 IP 地址。我需要使用类似的东西,<dom-repeat>因为每个配置的设备数量不同,比如 id=1 有 2 个设备,id=2 有 3 个。

有没有其他方法可以解决这个问题?

感谢您的关注和帮助。

4

1 回答 1

1

正如您已经注意到 dom-repeat 在这里不起作用。您唯一的解决方案是编写一个函数,然后将 ip´s 作为字符串返回。

<data-table-column name="IP Address">
   <template>[[_getIpAddresses(item)]]</template>
<data-table-column>

一点建议铁数据表已经死了没有人维护这个回购更好地使用vaadin-grid

于 2017-06-08T11:56:12.093 回答