首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚合物.达特铁.不与选定的物品结合的清单

聚合物.达特铁.不与选定的物品结合的清单
EN

Stack Overflow用户
提问于 2017-02-10 08:13:44
回答 1查看 74关注 0票数 0

这是代码的一个子集,使用<iron-list>与:

HTML

代码语言:javascript
复制
<iron-list selected-item="{{selectedItem}}" selection-enabled>
  <template is="dom-repeat" items="{{inputs}}">
    [[item.name]]
  </template>
</iron-list>
{{selectedItem}}

Dart

代码语言:javascript
复制
class className extends PolymerElement {
  @property var selectedItems;
  @property List inputs = new List.from([{"name": "fred"}]);
}

在选择时,selectedItem应该具有所选项的值,但它仍然是null

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-10 14:23:43

<iron-list>的轻型DOM不应该是项的列表,而应该是一个单一的基本DOM (不是dom-repeatdom-if等),它为每个项指定所需的DOM:

代码语言:javascript
复制
<iron-list ...>
  <template>
    ...
  </template>
</iron-list>

轻型DOM不能成为文本节点:

代码语言:javascript
复制
<iron-list ...>
  <template>
    <!-- Cannot be a text node like this -->
    <!-- [[item.name]] -->

    <div>[[item.name]]</div>
  </template>
</iron-list>

项数组数据应该绑定到<iron-list>.items

代码语言:javascript
复制
<iron-list items="[[items]]" ...>

总之,它应该看起来类似于这样:

代码语言:javascript
复制
HTMLImports.whenReady(() => {
  Polymer({
    is: 'x-foo',
    properties: {
      items: {
        type: Array,
        value: () => [{name: 'Fred'}, {name: 'John'}]
      }
    },
    _computeClass: function(isSelected) {
      return isSelected ? 'selected' : '';
    }
  });
});
代码语言:javascript
复制
<head>
  <base href="https://polygit.org/polymer+1.7.1/components/">
  <script src="webcomponentsjs/webcomponents-lite.min.js"></script>
  <link rel="import" href="polymer/polymer.html">
  <link rel="import" href="iron-list/iron-list.html">
</head>
<body>
  <x-foo></x-foo>

  <dom-module id="x-foo">
    <template>
      <style>
        iron-list {
          height: 50px;
        }
        .item.selected {
          background: lightblue;
          font-weight: bold;
        }
      </style>

      <iron-list items="[[items]]" selection-enabled selected-item="{{selectedItem}}">
        <template>
          <div class$="item [[_computeClass(selected)]]">[[item.name]]</div>
        </template>
      </iron-list>

      <h1>selected name: [[selectedItem.name]]</h1>
    </template>
  </dom-module>
</body>

码页

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42154505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档