2016-05-18 9 views
0

私は人からinputを受け入れて検索パラメータを作成する小さなweb-appを持っています。私はng-change関数をデバウンスして検索を実行するためにng-model-optionsを使用しています。DRY up ng-model

私は(そこに3つのアイコンです - up-downup、およびdownはsort_fieldためとSORT_ORDERはng-classを使用して表示)ソートユーザーをすることができますテーブルの上に列名の隣の小さな矢印を持っています。私はそれらに変更を登録し、デバウンスを使用して少し遅れて検索を実行したいと思います。問題は、ng-modelを使用して特定のパラメータをそれらのアイコンにバインドする方法がわかりません。誰かがソートアイコンを叩いてサーバやブラウザをクラッシュさせたくない。

私はむしろ、search_paramオブジェクトを見て、変更されたときに500ミリ秒後に検索を開始すると言うページ上に1つの場所を持っています。このようにして、入力フィールドまたはソート選択のいずれかが、ユーザがそれらの編集を終了したときに呼び出され、これらのパラメータがそれらのパラメータをエンドポイントに送るトリガとなる。

これを行うにはAngularJSの戦略は何ですか?現在、すべての入力フィールドはsearch_paramオブジェクトのフィールドをバインドし、変更時にデバウンスするにはng-model-optionsになります。これは多くの繰り返しコードです。

+0

あなたはどこにでも 'NG-change'に同じ機能を使用していますか?その場合、 '$ timeout'を使うことができます。もしキューに検索がなければ' $ timeout'で検索を開始することができます。もしあれば、 '$ timeout'をキャンセルして新しいものを開始してください。 –

答えて

0

私は最近、テーブルに関する人と非常に基本的な機能(ソート、検索、ページネーション)を得るためにあなたが入れなければならない作業量についてお答えしました。

使用するために完璧に素晴らしいライブラリがある場合は、ホイールを再発明するのはなぜ

角度-のDataTable

あなたはJSONソースからデータを引っ張って使用するために、私はここに完全なソリューションを投稿は:Ng-repeat trying to create a counter indexあなたは正しくデータをフォーマットするためのDataTableのサイト上のサーバー側の処理のドキュメントを通過する必要があるでしょう、あなたの場合は

https://datatables.net/manual/server-side