预先输入建议,每个建议下方都有文字
Typeahead suggestions with text below each suggestion
我正在做一个用户有角色的项目。
我正在为这些字符创建一个搜索功能,用户可以在其中输入字符名称,然后可以搜索匹配的记录。
我在输入框中使用预先输入,目前正在取回角色名称及其用户名。
我想在建议列表中以正常显示的角色名称显示此内容,然后将其下方的用户名显示为略小的文本。
像这样:
为此,我尝试了以下方法
<script type="text/javascript">
$(document).ready(function() {
var characters = new Bloodhound({
remote: {
url: '/search/characters/find?q=%QUERY%',
wildcard: '%QUERY%'
},
datumTokenizer: Bloodhound.tokenizers.whitespace('q'),
queryTokenizer: Bloodhound.tokenizers.whitespace
});
$("#searchinput").typeahead({
hint: true,
highlight: true,
minLength: 1
},
{
source: characters.ttAdapter(),
templates: {
suggestion: Handlebars.compile('<p>@{{ concatname }}</p><p><small>@{{ username }}</small></p>')
}
});
});
</script>
然而这只显示了建议中的角色名称。
为了测试数据是否正确输入,我尝试了这个并且成功了(角色名称然后是连字符然后是用户名):
suggestion: Handlebars.compile('<p>@{{ concatname }} - @{{ username }}</p>')
返回的数据示例如下:
[
{
concatname:"Great Work",
username:"manager"
},
{
concatname:"Scrim Greaves",
username:"glees"
}
]
如何让用户名正确显示在角色名称下方?
请注意,@{{ }}
语法是必要的,因为我使用 Laravel 并且 @
符号转义双花括号,然后呈现为 {{ }}
。
我认为您遇到的问题是您没有包装到 <p>
元素。该模板应该有一个包含所有内容的元素,并且很可能会修剪第二个 <p>
.
更改您的模板代码:
templates: {
suggestion: Handlebars.compile('<div><p>@{{ concatname }}</p><p><small>@{{ username }}</small></p></div>')
}
请检查以下网站,有一个会员搜索栏,我正在使用 typeahead 和 Laravel,我也在注册页面中使用它..
我正在做一个用户有角色的项目。
我正在为这些字符创建一个搜索功能,用户可以在其中输入字符名称,然后可以搜索匹配的记录。
我在输入框中使用预先输入,目前正在取回角色名称及其用户名。
我想在建议列表中以正常显示的角色名称显示此内容,然后将其下方的用户名显示为略小的文本。 像这样:
为此,我尝试了以下方法
<script type="text/javascript">
$(document).ready(function() {
var characters = new Bloodhound({
remote: {
url: '/search/characters/find?q=%QUERY%',
wildcard: '%QUERY%'
},
datumTokenizer: Bloodhound.tokenizers.whitespace('q'),
queryTokenizer: Bloodhound.tokenizers.whitespace
});
$("#searchinput").typeahead({
hint: true,
highlight: true,
minLength: 1
},
{
source: characters.ttAdapter(),
templates: {
suggestion: Handlebars.compile('<p>@{{ concatname }}</p><p><small>@{{ username }}</small></p>')
}
});
});
</script>
然而这只显示了建议中的角色名称。
为了测试数据是否正确输入,我尝试了这个并且成功了(角色名称然后是连字符然后是用户名):
suggestion: Handlebars.compile('<p>@{{ concatname }} - @{{ username }}</p>')
返回的数据示例如下:
[
{
concatname:"Great Work",
username:"manager"
},
{
concatname:"Scrim Greaves",
username:"glees"
}
]
如何让用户名正确显示在角色名称下方?
请注意,@{{ }}
语法是必要的,因为我使用 Laravel 并且 @
符号转义双花括号,然后呈现为 {{ }}
。
我认为您遇到的问题是您没有包装到 <p>
元素。该模板应该有一个包含所有内容的元素,并且很可能会修剪第二个 <p>
.
更改您的模板代码:
templates: {
suggestion: Handlebars.compile('<div><p>@{{ concatname }}</p><p><small>@{{ username }}</small></p></div>')
}
请检查以下网站,有一个会员搜索栏,我正在使用 typeahead 和 Laravel,我也在注册页面中使用它..