-1

バージョン 2.3.0 を使用して先行入力を初期化するために、次のコードを用意しました。

jQuery('#search_terms').typeahead({
    source: function(query, process) {
        return jQuery.ajax({
            url: '/api/path',
            type: 'GET',
            data: {q: query},
            dataType: 'json',
            success: function (json) {
                return process(json.suggestion);
            }
        });
    }
});

静的データを代用することで先行入力が機能することを確認しました。json.suggestion が期待どおりに単一の単語に評価されることを見てきました。ajax レスポンス自体は次のようになります。

{"suggestion":"word"}

ただし、Bootstrap は応答を先行入力に読み込むことを拒否します。私は何が欠けていますか?ここSO以外のajaxを介したBootstrap Typeaheadの詳細なドキュメントを見つけるのに苦労していることを認めます。

前もって感謝します。

4

1 に答える 1

5

Bootstrap Typeahead は、独自のマッチング フィルターを使用して ajax データを推測していることがわかりました。一致を強制的に true にすることで、この問題を解決しました。

jQuery('#search_terms').typeahead({
    source: function(query, process) {
        jQuery.ajax({
            url: 'api/path',
            type: 'GET',
            data: {q: query},
            dataType: 'json',
            success: function (json) {
                process([json.suggestion]);
            }
        });
    },
    matcher: function (param) {return true}
});
于 2013-02-13T17:51:50.727 に答える