将预先输出从0.9.3升级到0.10.5远程

时间:2014-10-15 15:29:07

标签: javascript jquery typeahead.js twitter-typeahead bloodhound

您好我将我的输出js从0.9.3升级到0.10.5。它在0.9.3中工作,但我似乎无法在最新版本中使用我的远程连接。

我正在使用以下代码。

init = function(spec) {
    var $field;

    $field = $(document.getElementById(spec.id));

    var suggestions = new Bloodhound({

        datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
        queryTokenizer: Bloodhound.tokenizers.whitespace,

        remote: {
            url: spec.url,
            replace: function(uri, query) {
                return extendURL(uri, {
                    "t:input": query
                });
            },
            filter: function(response) {
                return response.matches;
            }
        }
    });

    suggestions.initialize();

    return $field.typeahead({
        limit: 5,
        displayKey: 'value',
        source: suggestions.ttAdapter()
    });
};
return exports = init;

在0.9.2中,以下代码有效,但出于某种原因,每次在输入框中按下键时,建议都会消失,直到具有匹配项的键盘。我希望这次升级能解决我的问题,或者是否存在导致它的配置问题。

init = function(spec) {
    var $field;

    $field = $(document.getElementById(spec.id));
    return $field.typeahead({
        minLength: spec.minChars,
        limit: 5,
        remote: {
            url: spec.url,
            replace: function(uri, query) {
                return extendURL(uri, {
                    "t:input": query
                });
            },
            filter: function(response) {
                return response.matches;
            }
        }
    });
};

1 个答案:

答案 0 :(得分:1)

我在构造函数中缺少null。

return $field.typeahead({
        limit: 5,
        displayKey: 'value',
        source: suggestions.ttAdapter()
});

修正版

return $field.typeahead(null, {
        minLength: spec.minChars,
        displayKey: 'value',
        source: suggestions.ttAdapter(),
});