【问题标题】:Export only filtered data into csv in angular smart table仅将过滤后的数据导出到角度智能表中的 csv
【发布时间】:2015-08-13 11:52:05
【问题描述】:

我们已经使用 angular smart table 实现了一个报告表。当用户使用 st-search 应用搜索条件时,我们需要将所有项目导出到 csv。我们使用 ng-csv 指令进行导出。使用st-table数组集合时,只获取第一页数据。也就是说过滤后总共有7条记录,第一页显示5项,只有这个数据(5项)被导出。如何导出所有过滤后的数据?

 <table class="table table-striped" st-table="displayed">
<thead>
<tr>
    <th  st-sort="firstName">first name</th>
    <th  st-sort="lastName">last name</th>
    <th  st-sort="birthDate">birth date</th>
    <th  st-sort="balance">balance</th>
    <th >email</th>
</tr>
<tr>
    <th>
        <input st-search="firstName" placeholder="search for firstname" class="input-sm form-control" type="search"/>
    </th>
    <th colspan="4">
        <input st-search placeholder="global search" class="input-sm form-control" type="search"/>
    </th>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in displayed">
    <td>{{row.firstName | uppercase}}</td>
    <td>{{row.lastName}}</td>
    <td>{{row.birthDate | date}}</td>
    <td>{{row.balance | currency}}</td>
    <td><a ng-href="mailto:{{row.email}}">email</a></td>
</tr>
</tbody>
<tfoot>
        <tr>
            <td colspan="5" class="text-center">
                <div st-pagination="" st-items-by-page="5" st-displayed-pages="10"></div>
            </td>
        </tr>
    </tfoot>

【问题讨论】:

  • 您是否尝试过定义显示集合并将其传递给属性?那就是过滤后的数据。请参阅文档中的st-safe-src
  • 是的,我们已经尝试在 ng-csv 导出方法中使用显示集合。但面临同样的问题
  • 创建复制问题的演示。如果集合设置正确应该很容易使用从范围过滤的显示集合
  • 我们使用“显示”数组集合进行导出

标签: angularjs smart-table


【解决方案1】:

您可以通过表控制器 api 访问过滤后的集合。所以你只需要创建一个需要 stTable 控制器的指令:

.directive('stExport',function(){
   return {
     require:'^stTable',
     link:function(scope, element, attr,ctrl){
       element.bind('click',function(){
       alert(ctrl.getFilteredCollection().length);
     })
   };
}

have a look at that running example

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多