5

テーブルをフィルタリングする必要がある 3 つの検索フィールドがあります (名前、ターゲット、リーチ)。
最初の 2 つは通常のフィルターを作成します。つまり、そのうちの 1 つを変更すると、次の構造で "filterText" プロパティが変更されます。

name: [NAME_VALUE]; target: [TARGET_VALUE];

問題は最後の1つです。より低いか、より高いかでフィルタリングしたい。

このようなもの:

name: [NAME_VALUE]; target: [TARGET_VALUE]; reach: >[REACH_VALUE]

そのため、カスタム フィルタリング関数を作成し、「useExternalFilter」を true に設定する必要があることがわかりました。

これについて 2 日間検索しましたが、完全な答えが見つかりませんでした: 行をフィルター処理するための参照を取得するにはどうすればよいですか? そして、この参照を取得したら、ng-grid の方法を使用して行を非表示に設定するにはどうすればよいですか?

これは私が今まで行ったことです:ng-gridのソースコードで、「filterText」の変更時に「ngGridEventFilter」イベントを発行するのを見たので、これを使用してそれを聞きました:

$scope.$on( "ngGridEventFilter", function(){
    $scope.checkReach( );
});
4

1 に答える 1

2

グリッドの内部フィルター ロジックをオーバーライドしているため、サーバー側で自分で処理する必要があります。

<input type="text" ng-model="filterOptions.filterText" placeholder="Filter">


app.controller('MyCtrl', function($scope) {
    $scope.filterOptions = {
        filterText: "",
        useExternalFilter: true
    };

    $scope.gridOptions = {
        data: 'myData',
        filterOptions: $scope.filterOptions
    };

    $scope.$watch('filterOptions', function () {
      //Call an async function to fetch data here.
      someAsyncFunction($scope.filterOptions.filterText);
    }, true); 
});
于 2014-01-02T04:19:37.800 に答える