twitter bootsrap typeahead jquery ajax回调不工作

twitter bootsrap typeahead jquery ajax回调不工作,jquery,callback,bootstrap-typeahead,Jquery,Callback,Bootstrap Typeahead,问题:twitter bootsrap typeahead jquery ajax回调不工作 我使用的是jqueryv1.8.3、Bootstrap v2.2.1、Bootstrap-typeahead.js v2.2.2 正在接收JSON响应,但未调用回调 JSON响应 {“ResultSet”:{“Query”:“face”,“Result”:[{“symbol”:“FB”},{},{}..]} 我看到了与这个问题相关的不同帖子,并尝试了它们。 但是没有一个是为我工作的。有人遇到过这样的问题

问题:twitter bootsrap typeahead jquery ajax回调不工作

我使用的是jqueryv1.8.3、Bootstrap v2.2.1、Bootstrap-typeahead.js v2.2.2 正在接收JSON响应,但未调用回调

JSON响应
{“ResultSet”:{“Query”:“face”,“Result”:[{“symbol”:“FB”},{},{}..]}

我看到了与这个问题相关的不同帖子,并尝试了它们。 但是没有一个是为我工作的。有人遇到过这样的问题吗

inputSearch.typeahead({
  source: function (query, processSearchResults) {
    query = inputSearch.val();
    return $.getJSON('ticker_search', { query: query }, function (data) {
      return processSearchResults(data);
    });

  }
});

数据应该是类似于

['item 1', 'item 2']
演示:

你需要像这样做

inputSearch.typeahead({
    source: function (query, processSearchResults) {
        query = inputSearch.val();
        return $.getJSON('ticker_search', { query: query }, function (data) {
            if(data && data.ResultSet && $.isArray(data.ResultSet.Result)){
                processSearchResults($.map(data.ResultSet.Result, function(item, index){
                    return item.symbol;
                }));
            }
        });

    }
});

演示:

是的,我同意。但是我有'processSearchResults(data)=>这个回调函数形成了指向typeahead功能源的数组。这里有什么问题吗?
processSearchResults
是从
typeahead
插件传递的回调方法,它需要一个数组,但您正在传递一个数据对象。您是正确的。它需要一个数组。我按照你的建议更改了代码。现在可以了。我误解了引导程序的typeahead回调部分。非常感谢Arun。