如何在Polymer 1.0中重新加载/刷新铁列表?

Dav*_*las 5 polymer polymer-1.0

我已将一个项添加到绑定到的数据属性中iron-list.

this.data.push(item); // add new item to array
Run Code Online (Sandbox Code Playgroud)

现在已添加数据项但列表不会刷新/重新加载以显示添加到数据数组的新项目.你如何重新加载铁列表?似乎也无法在铁列表API页面上找到方法.我尝试过以下但没有快乐......

var list = this.querySelector("iron-list");
list.fire('refresh');
list._refresh();
Run Code Online (Sandbox Code Playgroud)

我的数据属性定义如下:

Polymer({
  is: "page-list",
  properties: {
    data: {
      type: Array,
      notify: true
    }
Run Code Online (Sandbox Code Playgroud)

模板结构是:

<iron-ajax url="./data.json" last-response="{{data}}" auto></iron-ajax>
<iron-list items="[[data]]" as="item" class="fit">
  <template>
    <div class="row">
      <p>[[item.name]]</p>
    </div>
  </template>
</iron-list>
Run Code Online (Sandbox Code Playgroud)

Jus*_* XL 4

您将需要使用Polymer函数来添加新项目,如下所示 -

this.push('data', item);
Run Code Online (Sandbox Code Playgroud)

必须使用Polymer元素上提供的方法执行items数组本身的变异(push,pop,splice,shift,unshift),以便可以观察到绑定到树中相同数组的任何元素的更改.

您可以从这里阅读更多内容.

  • 您还可以使用 `this.querySelector('iron-list').notifyResize();` 检查[此处](http://stackoverflow.com/questions/32009715/how-to-sort-an-iron-list -in-polymer-1-0/35329297#35329297) 用于自定义排序。 (2认同)