首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚合物1.x:如何使用dataSource函数过滤铁数据表?

聚合物1.x:如何使用dataSource函数过滤铁数据表?
EN

Stack Overflow用户
提问于 2016-10-25 22:25:21
回答 2查看 477关注 0票数 0

这是普伦克

我想为<iron-data-table 正如对这个问题的公认答案中所描述的实现<iron-data-table过滤函数。我的问题是这里的文档没有给出如何实现这一目标的示例。

最终,我希望在一个大型数据集上有一组复杂的过滤器(想想:控制面板)。

我尝试过复制dom-repeat 这里的文档描述了所采用的方法,但没有成功。

http://plnkr.co/edit/cGykY65HWnK4pIQ0qx8O?p=preview

代码语言:javascript
复制
<iron-data-table
    items="[[users.results]]"
    data-source="source(item)">
...
    source: function(item) {
      return item.user.name.first.length > 6;
    },

如何正确实现dataSource属性函数以筛选<iron-data-table

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-27 06:24:27

dataSource属性将一个函数作为一个值,所以最直接的方法是在父元素中定义一个函数属性,并使用普通的聚合物绑定来传递它。

不幸的是,函数签名没有很好地定义,但是在iron-data-table演示页面中有一些示例:http://saulis.github.io/iron-data-table/demo/ (远程数据示例)

我已经相应地更新了您的Plunkr:http://plnkr.co/edit/VWIAvWAnuf2aiCjJjCdI?p=preview

票数 1
EN

Stack Overflow用户

发布于 2016-10-28 02:30:01

为了完整起见,所接受的答案中的代码如下:

http://plnkr.co/edit/VWIAvWAnuf2aiCjJjCdI?p=preview

代码语言:javascript
复制
<base href="https://polygit.org/polymer+:master/iron-data-table+Saulis+:master/components/">
<link rel="import" href="polymer/polymer.html">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>

<link rel="import" href="iron-ajax/iron-ajax.html">
<link rel="import" href="paper-button/paper-button.html">

<link rel="import" href="iron-data-table/iron-data-table.html">

<dom-module id="content-el">
    <template>
        <style></style>

    <iron-ajax
      auto
      url="https://saulis.github.io/iron-data-table/demo/users.json" 
      last-response="{{users}}">
    </iron-ajax>
    <iron-data-table
        data-source="[[dataSource]]">
      <data-table-column name="Picture" width="50px" flex="0">
        <template>
          <img src="[[item.user.picture.thumbnail]]">
        </template>
      </data-table-column>
      <data-table-column name="First Name">
        <template>[[item.user.name.first]]</template>
      </data-table-column>
      <data-table-column name="Last Name">
        <template>[[item.user.name.last]]</template>
      </data-table-column>
      <data-table-column name="Email">
        <template>[[item.user.email]]</template>
      </data-table-column>
    </iron-data-table>

    </template>

  <script>
    (function() {
      'use strict';
      Polymer({
        is: 'content-el',

        properties: {
          users: Array,
          dataSource: Function
        },

        observers: ['_usersChanged(users)'],

        _usersChanged: function(users) {
          this.dataSource = function(params, callback) {
            var filteredUsers = users.results.filter(function(item) {
              return item.user.name.first.length > 6;
            });

            callback(filteredUsers, filteredUsers.length);   
          };
        }
      });
        })();
  </script>
</dom-module>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40250746

复制
相关文章

相似问题

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