web-dev-qa-db-ja.com

smart-tableとangularjsを使用してカスタム検索を実装する方法

スマートテーブルで日付フィールドを検索する方法はありますか?特定の日付より後の日付でフィルタリングする必要があります。

10
user2543492

st-set-filter属性を使用してカスタム(グローバルフィルター)を設定できます(まだ文書化されていません)

<table st-set-filter="myFilter" st-table="rowCollection">
  ...
</table>

次に、カスタムフィルターを実装します

myApp.filter('myFilter',[function(){
    return function(array, expression){
       //an example
       return array.filter(function(val, index){
           return new Date(val.theDateProperty) > new Date(expression.theDateProperty) ;
       });
    }
});

たとえば、テーブルに入力するように設定している場合

<input type="date" st-search="'theDateProperty'" />

フィルタはテーブルに対してグローバルであるため、非常に検索入力に対してangular filter(デフォルトで使用される)の代わりに呼び出されます。したがって、異なる列に対して他のフィルタ動作が必要な場合は、カスタムフィルターに追加する必要があります。または、コンパレーター関数を使用する方法もあります。詳細については、 プルリクエスト (18/11/2014)に関する私のコメントを参照してください。および プランカー

編集:

その間、 文書化 されています。

16
laurent