首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Typeahead.js提供建议

通过Typeahead.js提供建议
EN

Stack Overflow用户
提问于 2016-04-21 20:21:26
回答 1查看 113关注 0票数 1

我有一个应用程序,它使用Bootstrap,jQuery,Typeahead.js和Azure搜索。我正在尝试使用建议功能。为了做到这一点,我有以下几点:

代码语言:javascript
复制
var engine = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.whitespace,
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  remote: {
    url: 'https://my-app.search.windows.net/indexes/my-index/docs/suggest?api-version=2015-02-28',
    prepare: function (settings) {
      settings.type = 'POST';
      settings.contentType = 'application/json; charset=UTF-8';
      settings.data = { search: query, suggesterName: 'mySuggestions', top: 10 };                                                        
      return settings;
    }
  }
});

$('#searchField').typeahead([{
  minLength: 5,
  name: 'suggestions',
  source: engine
}]);

当我在searchField中输入文本时,我从未见过向Fiddler中的Azure搜索服务发出的请求。同时,我在控制台窗口中没有看到任何错误。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-22 04:55:47

在我看来有几件事是不对的。首先,这是:

代码语言:javascript
复制
$('#searchField').typeahead([{
  minLength: 5,
  name: 'suggestions',
  source: engine
}]);

可能需要更像这样:

代码语言:javascript
复制
$('.typeahead').typeahead(null,{
  minLength: 5,
  source: engine
});

此外,引擎函数中的准备需要包括“查询”arg。

代码语言:javascript
复制
var engine = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.whitespace,
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  remote: {
    url: 'https://my-app.search.windows.net/indexes/my-index/docs/suggest?api-version=2015-02-28',
    prepare: function (query,settings) {
      settings.type = 'POST';
      settings.contentType = 'application/json; charset=UTF-8';
      settings.data = { search: query, suggesterName: 'mySuggestions', top: 10 };                                                        
      return settings;
    }
  }
});

你可以看到一个正在工作的小提琴这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36779674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档