2016-04-21 31 views
0

我想獲取過濾器輸入的值,這有可能嗎?我有這個表 myTablengTable執行一個帶有過濾器值的方法

與代碼

<td data-title="'Transaccion'" filter="{id_transaccion: 'text'}" sortable="'id_transaccion'"> 
    <span editable-text="pago.id_transaccion" e-name="id_transaccion" e-form="rowform" e-required="">{{pago.id_transaccion}}</span> 
</td> 

我有過濾ATTR,我測試了一切試圖讓過濾器領域transacction的價值,但沒有任何工程,任何人都知道如何爲拿到它,爲實現它?

回答

0

您可以使用NgTableParams實例的filter()方法訪問filters對象。如果您使用'getData'而不是'dataset'獲取表格數據(如下例所示),則每次更改過濾器值時,函數'getData'都會執行,您可以在那裏訪問更新的過濾器對象並創建任何數據操縱你想要的。看看下面的代碼段的代碼:

(function() { 
 
    "use strict"; 
 

 
    var app = angular.module("myApp", ["ngTable"]); 
 

 
    app.controller("demoController", demoController); 
 

 
    demoController.$inject = ["NgTableParams", "$filter"]; 
 

 
    function demoController(NgTableParams, $filter) { 
 
    var self = this; 
 
    var simpleList = [{ 
 
     name: 'ww', 
 
     age: 234, 
 
     money: 45, 
 
     country: 'pan' 
 
    }, { 
 
     name: 'xx', 
 
     age: 24, 
 
     money: 55, 
 
     country: 'col' 
 
    }, { 
 
     name: 'yy', 
 
     age: 454, 
 
     money: 82, 
 
     country: 'cr' 
 
    }, { 
 
     name: 'zz', 
 
     age: 345, 
 
     money: 34, 
 
     country: 'mex' 
 
    }]; 
 

 
    self.tableParams = new NgTableParams({ 
 
     // initial filter 
 
     filter: { 
 
     name: "w" 
 
     } 
 
    }, { 
 
     getData: getData 
 
    }); 
 

 
    function getData(params) { 
 

 
     /***************************** 
 
     *  LOOK HERE!!!!! 
 
     ******************************/ 
 
     // The filter object 
 
     var filterObj = params.filter(); 
 
     
 
     self.ngTableFilters = filterObj; 
 

 
     // Filtering the list using the filter object... 
 
     var filteredList = $filter('filter')(simpleList, filterObj); 
 

 
     return filteredList; 
 
    } 
 

 

 
    } 
 
})(); 
 

 
(function() { 
 
    "use strict"; 
 

 
    angular.module("myApp").run(setRunPhaseDefaults); 
 
    setRunPhaseDefaults.$inject = ["ngTableDefaults"]; 
 

 
    function setRunPhaseDefaults(ngTableDefaults) { 
 
    ngTableDefaults.params.count = 5; 
 
    ngTableDefaults.settings.counts = []; 
 
    } 
 
})();
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" /> 
 
<link href="https://rawgit.com/esvit/ng-table/master/dist/ng-table.min.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script src="https://rawgit.com/esvit/ng-table/master/dist/ng-table.min.js"></script> 
 
<div ng-app="myApp" class="container-fluid"> 
 
    <div class="row" ng-controller="demoController as demo"> 
 
    <div class="col-xs-12"> 
 
     <h3>ngTable directive</h3> 
 
     <table ng-table="demo.tableParams" class="table table-condensed table-bordered table-striped"> 
 
     <tr ng-repeat="row in $data"> 
 
      <td data-title="'Name'" filter="{name: 'text'}">{{row.name}}</td> 
 
      <td data-title="'Age'" filter="{age: 'number'}">{{row.age}}</td> 
 
      <td data-title="'Money'" filter="{money: 'number'}">{{row.money}}</td> 
 
     </tr> 
 
     </table> 
 
    </div> 
 
    <div class="col-xs-12"> 
 
     <h3>Filters:</h3> 
 
     <pre>{{ demo.ngTableFilters | json }}</pre> 
 
    </div> 
 
    </div> 
 
</div>