0

目前,我在 Typeahead 中看到,当查询没有结果时,它不会显示任何下拉列表,也不会显示任何类型的消息,让用户知道查询没有返回结果。

当查询没有返回任何内容时,有没有办法在下拉列表中只显示一个结果,例如“没有结果”?

到目前为止我能想到的最好的解决方案是在结果列表中添加一个“无结果”对象,然后使用匹配器来处理这种情况。但不知何故,我觉得这很糟糕。

还有其他建议吗?

4

1 回答 1

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% 确定这是否是好的做法,但它可以完成工作。

于 2013-05-13T19:39:00.893 回答