1

md-autocompleteWeb フォームの 1 つで角度入力を使用しています。私はそれをすべてセットアップしており、うまく機能しています。

予想どおり、オートコンプリート入力に新しい文字を入力するたびに、オートコンプリート データを取得するためにバックエンドが呼び出されます。問題は、新しい文字が入力されるたびにバックエンド呼び出しを行いたくないということです。最後にバックエンド呼び出しが行われてから x 秒が経過した場合にのみ、バックエンド呼び出しを実行したいと考えています。

文字が入力されたときに呼び出される関数は次のとおりです。

関数オートコンプリート(入力値) {
    var deferred = $q.defer();

    portalState.apiPost(
        'api/猫/検索',
        {
            検索タイプ: 'すべて',
            SearchTerm: 入力値
        }、
        関数 (応答) {
            deferred.resolve(応答.データ);
        }、
        関数 (応答) {
            deferred.resolve(null);
        });

    deferred.promise を返します。
}

これは、調整ロジックを試す前の私の作業機能です。スロットリング ロジックを挿入したときに発生する主な問題は、Angular がエラーをスローする原因とならない、何を返せばよいかわからないことです。次に例を示します。

関数オートコンプリート(入力値) {
    var isCool = false;

    if(クール) {
        var deferred = $q.defer();

        portalState.apiPost(
            'api/猫/検索',
            {
                検索タイプ: 'すべて',
                SearchTerm: 入力値
            }、
            関数 (応答) {
                deferred.resolve(応答.データ);
            }、
            関数 (応答) {
                deferred.resolve(null);
            });

        deferred.promise を返します。
    }
    そうしないと {
        //何らかの種類がありますか
        //返すことができる空の約束
        //Angularがそうしないように
        // エラーを投げる
    }
}

では、バックエンド コールを行いたくない場合は、何を返すことができますか? md-autocompleteまたは、角度入力を調整する簡単な方法はありますか?

4

1 に答える 1