目前,我在Typeahead中看到,当查询没有结果时,它不会显示任何下拉列表或任何类型的消息,让用户知道返回的查询没有结果。
当查询没有返回任何内容时,有没有办法在下拉列表中只有一个结果显示“没有结果”?
到目前为止,我能想到的最佳解决方案是在结果列表中添加“无结果”对象,并使用匹配器来处理案例。但不知怎的,我觉得这很糟糕。
还有其他建议吗?
答案 0 :(得分:2)
我目前使用的解决方案如下。
基本上我将一个空对象推入项目列表,但不推入对象地图。这将使分拣机相信阵列中至少有一个项目。因此,当您尝试从地图中获取对象时,在荧光笔中,该对象将是未定义的。
// sort our results
sorter: function(items) {
if (items.length == 0) {
items.push(new Object());
}
return items;
},
highlighter: function(item) {
comp = map[item];
if (typeof comp == 'undefined') {
return "<span>No Match Found.</span>";
}
请注意,我正在处理对象的数组列表,而不是默认的字符串数组。
这里的好教程: http://tatiyants.com/how-to-use-json-objects-with-twitter-bootstrap-typeahead/
不是100%确定这是不是很好的做法,但它可以完成工作。