我正在使用Elasticsearch和AngularJS构建一个小型搜索应用程序。我正在使用AngularJS UI bootstrap typeahead来实现自动完成,我使用ES的edge_n_grams
和highlight object
来生成建议,2)分别突出显示建议。 ES突出显示对象包含HTML <em></em>
标记中的建议... 似乎导致我对设置方式的一些问题。
1)当我按Enter键而不是单击搜索按钮时 - 所有发生的事情都是显示搜索条件包含在<em></em>
标签中并且不执行搜索... <em>search terms</em>
< / p>
2)当我用鼠标选择建议时,会发生同样的事情。
搜索执行的唯一时间是我输入查询并单击搜索按钮...
这是我正在使用的搜索表单,我在表单元素和按钮上有ng-submit =“search()”,不知道我哪里出错......?< / p>
<form name="q" ng-submit="search()" class="navbar-form" id="results-search" role="search">
<div class="input-group">
<input type="text" name="q" ng-model="searchTerms" class="form-control input-md" placeholder="{{ searchTerms }}" id="search-input" uib-typeahead="query for query in getSuggestions($viewValue)" typeahead-on-select="search($item)">
<div class="input-group-btn">
<button type="submit" ng-submit="search()" class="btn btn-primary btn-md"><i class="fa fa-search fa-lg"></i></button>
</div>
</div>
</form>
我是否在使用UI Bootstrap Typeahead做错了什么?
更多说明 基本上我要问的是如何从建议,选择和搜索中删除 标签?