更改铁列表中现有项的绑定属性的值

Change the value of a bound property on an existing item in iron-list

本文关键字:绑定 属性 列表      更新时间:2023-09-26

我的iron-list中绑定了一个项目,当我更改对象的绑定属性时,我希望看到屏幕上反映的更改,但我没有。做错了什么?

https://jsfiddle.net/ckqL3a3o/3/

<link rel="import" href="https://cdn.rawgit.com/Download/polymer-cdn/1.2.3.2/lib/polymer/polymer.html">
<link rel="import" href="https://cdn.rawgit.com/Download/polymer-cdn/1.2.3.2/lib/iron-list/iron-list.html">
<script src="https://google.github.io/traceur-compiler/bin/traceur.js"></script>
<script src="https://google.github.io/traceur-compiler/bin/BrowserSystem.js"></script>
<script src="https://google.github.io/traceur-compiler/src/bootstrap.js"></script>
<template is="dom-bind" id="app">
  <div style="width: 500px; height: 300px; background: #eee; overflow: auto; float:left">
    <iron-list items="{{data}}" as="item" style="width: 500px; height: 300px;">
      <template>
        <p><span>{{item.name}}</span> <span>{{item.value}}</span></p>
      </template>
    </iron-list>
  </div>
</template>
<script type="module">
    'use strict';
    var app = document.querySelector('#app');
        app.data = [{ name: 'item', value: 3 }];
    setTimeout(() => app.data[0].value = 4, 2000);
</script>

您需要使用 Polymers API 修改 Polymer 的模型数据才能获得通知

setTimeout(() => this.set('app.data.0.value', 4), 2000);

参见
- https://www.polymer-project.org/1.0/docs/devguide/data-binding.html#set-path
- https://www.polymer-project.org/1.0/docs/devguide/data-binding.html#array-binding
- https://www.polymer-project.org/1.0/docs/devguide/properties.html#notifysplices