首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >smart-table -如何重置过滤器集合?

smart-table -如何重置过滤器集合?
EN

Stack Overflow用户
提问于 2015-03-24 06:33:13
回答 2查看 6.3K关注 0票数 7

新入门的角度和智能表..

此智能表设置可以正确工作和过滤,但尝试重置或清除过滤器不会重新过滤表。为什么不行?

使用ng-model绑定更新输入不会触发智能表正在寻找的手表吗?

Plunker可在此处获得:http://plnkr.co/edit/4os3oWeJtEtMfa89QoQd?p=preview

代码:

代码语言:javascript
复制
        var actionQueue = [
            { Type: 'User Access Request', Description: 'test test test test test test test', DateRequested: '5/5/15' },
            { Type: 'User Access Request', Description: 'blah blah', DateRequested: '3/3/10' },
            { Type: 'Project Approval Request', Description: 'project needs approving', DateRequested: '1/1/08' }
        ];

        $scope.actionQueueCollection = actionQueue;


        $scope.predicates = [{ Name: 'All', Value: '' }, { Name: 'User Access Request', Value: 'User Access Request' }, { Name: 'Project Approval Request', Value: 'Project Approval Request' }];
        $scope.selectedPredicate = $scope.predicates[0];

        $scope.clearFilter = function () {
            $scope.selectedPredicate = $scope.predicates[0];
            $scope.searchFilter = '';

        }

标记:

代码语言:javascript
复制
    <table st-table="actionQueueCollection" >
        <thead>
            <tr>
                <th>
                    <div>
                        <label class="col-sm-1 control-label" for="filterType">Filter: </label>
                        <div class="col-sm-8">
                            <select class="form-control input-sm" id="filterType" name="filterType" ng-model="selectedPredicate" ng-options="predicate.Name for predicate in predicates track by predicate.Value" st-search="Type"></select>
                        </div>
                    </div>
                </th>
                <th colspan="3">
                    <div class="form-horizontal form-group-sm">
                        <div class="input-group col-sm-12">
                            <input st-search placeholder="search" class="form-control input-sm" type="search" ng-model="searchFilter" />
                            <button type="button" class="btn-sm btn-default" ng-click="clearFilter()">CLEAR</button>
                        </div>
                    </div>
                </th>
            </tr>
            <tr>
                <th>Type</th>
                <th>Description</th>
                <th>Date Requested</th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat="action in actionQueueCollection">
                <td>{{action.Type}}</td>
                <td>{{action.Description}}</td>
                <td>{{action.DateRequested}}</td>
            </tr>
        </tbody>
    </table>

EN

回答 2

Stack Overflow用户

发布于 2016-02-21 02:08:29

几乎是一样的事情。这样用起来会简单一点。

代码语言:javascript
复制
.directive("stResetSearch", function() {
         return {
                restrict: 'EA',
                require: '^stTable',
                link: function(scope, element, attrs, ctrl) {
                  return element.bind('click', function() {
                    return scope.$apply(function() {
                      var tableState;
                      tableState = ctrl.tableState();
                      tableState.search.predicateObject = {};
                      tableState.pagination.start = 0;
                      return ctrl.pipe();
                    });
                  });
                }
              };
    })

然后用法是这样的

代码语言:javascript
复制
<button type="button" st-reset-search>Clear Filters</button>

点击此处:https://github.com/lorenzofox3/Smart-Table/issues/164

票数 9
EN

Stack Overflow用户

发布于 2015-03-24 07:44:50

这就是我想出来的.我不确定这是不是一种好的方法,但从我收集的信息来看,我需要创建许多指令来在智能表格上发挥功能?

代码语言:javascript
复制
<button type="button" class="btn-sm btn-default" smart-table-reset="clearFilter()">

代码语言:javascript
复制
    .directive('smartTableReset', ['$parse', function ($parse) {
        return {
            restrict: 'A',
            require: '^stTable',
            link: function (scope, element, attr, ctrl) {
                var tableCtrl = ctrl;
                var fn = $parse(attr['smartTableReset']);

                element.on('click', function (event) {
                    ctrl.tableState().search = {};
                    tableCtrl.search('', '');
                    scope.$apply(function () {
                        fn(scope, {
                            $event: event
                        })
                    });
                });
            }
        };

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

https://stackoverflow.com/questions/29221692

复制
相关文章

相似问题

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