我正在尝试使用 Twitter Bootstrap 2.2.1 创建 Typeahead 搜索。我设法使用 JSON 而不是这样的字符串:
$('#search').typeahead({
minLength: 3,
source: function (query, process) {
$.post('@Url.Action(<MySearchAction>, <MyControllerName>)', { Text: query }, function (data) {
var source = [];
$.each(data, function (index, value) {
source.push(JSON.stringify(value));
});
process(source);
});
},
updater: function (item) {
var itemJSON = JSON.parse(item);
window.location.href = '@Url.Action(<MyDetailsAction>, <MyControllerName>)/' + itemJSON.ID;
},
highlighter: function (item) {
var itemJSON = JSON.parse(item);
return itemJSON.Name;
},
});
现在我想做更多
- 在 typeahead 中使用 JSON 是正确的方法吗?
- 我想在下拉列表中显示不同类型的对象 - 假设我有歌曲和专辑类型,我想显示找到的所有歌曲然后是分隔符,然后是找到的所有专辑。
- 我想在下拉列表中显示图像 - 比如专辑的封面。
我在这里阅读了主题Allow loading images and custom HTML in typeahead results。
引用该主题:“使用项目和菜单选项的组合,您可以指定新模板”,但我仍然不知道如何以正确的方式进行操作。
谢谢你。