And*_*ewO 4 javascript typeahead.js
我在这里看了很多线程(以及官方的例子),但我似乎找不到类似于我自己的问题.
我可能在这里有点厚 - 我的%QUERY字符串作为远程查询的一部分传递,我显然不想要.例:
"NetworkError: 404 NOT FOUND - http://local.example.co:8000/search-schools/%QUERY"`
Run Code Online (Sandbox Code Playgroud)
这是我的JS(你可以看到我在页面上有多个输入框,每个输入框都在一个单独的bootstrap3选项卡上(这将是另一个问题的焦点):
<script type="text/javascript">
var schoolSource = new Bloodhound({
hint: false,
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/search-schools/%QUERY'
}
});
schoolSource.initialize();
</script>
<script type="text/javascript">
$('#schoolSearch1').typeahead(null, {
name: 'schoolSearch1',
displayKey: 'name',
source: schoolSource
});
</script>
<script type="text/javascript">
$('#schoolSearch2').typeahead(null, {
name: 'schoolSearch2',
displayKey: 'name',
source: schoolSource
});
</script>
Run Code Online (Sandbox Code Playgroud)
行为: 我可以看到,当我在输入框中输入搜索文本时,会尝试与远程URL进行通信,但它会传递文字%QUERY字符串而不是输入框中的字符串.
我究竟做错了什么?如何将查询字符串传递给bloodhound?
根据OP链接中的示例,您可能应该wildcard在远程配置中包含该属性.尝试:
var schoolSource = new Bloodhound({
hint: false,
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/search-schools/%QUERY',
wildcard: '%QUERY'
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3165 次 |
| 最近记录: |