无法从聚合物2.x

时间:2017-04-27 05:49:55

标签: polymer polymer-2.x

我在Polymer 2.x中使用纸张下拉菜单,如下所示:

<paper-dropdown-menu label="Person" class="item">
  <paper-listbox id="name" slot="dropdown-content" attr-for-selected="value" selected="{{selName}}" on-iron-select="nameSelected">
    <paper-item value="John">John</paper-item>
    <paper-item value="Bush">Bush</paper-item>
    <paper-item value="Afridi">Afridi</paper-item>
  </paper-listbox>
</paper-dropdown-menu>

当我从上面的下拉菜单中选择一些项目时,将根据所选值填充下拉列表,如下所示:

<paper-dropdown-menu label="Balance" class="item">
  <paper-listbox id="Balance" slot="dropdown-content" attr-for-selected="value" selected="{{selValue}}">
    <template is="dom-repeat" items="[[data]]">
      <paper-item value="{{item}}">{{item}}</paper-item>
    </template>
  </paper-listbox>
</paper-dropdown-menu>

事件处理程序

nameSelected(event) {
  var selectedItem = event.target.selectedItem.textContent;
  this.data = [];
  if (selectedItem === 'John') {
    for (var i = 0; i < 20; i++) {
      this.data.push(i);
    }
  } else {
    for (var i = 20; i < 40; i++) {
      this.data.push(i);
    }
  }

  this.selValue = this.data[0];
}

首次加载页面时,会预先选择人员下拉菜单中的第一个值(即John)。因此,还会预先选择“平衡”下拉菜单中的第一项(即零)。这可以。问题是当我在人员下拉菜单中更改选择时,虽然正确填充了平衡下拉菜单,但未预先选择第一个值。

您能否指导我解决此问题。

1 个答案:

答案 0 :(得分:1)

看起来这是聚合物2.0元素预览版中的一个错误。我已设法使用以下代码:

if (this.selValue !== this.data[0]) {
  this.selValue = undefined;
  setTimeout(() => { this.selValue = this.data[0]; }, 0);
}