0

現在、Typeahead では、クエリからの結果がない場合、ドロップダウン リストも、クエリが結果を返さなかったことをユーザーに知らせるメッセージも表示されません。

クエリが何も返さないときに、ドロップダウン リストに「結果がありません」のような結果を 1 つだけ表示する方法はありますか?

これまでのところ、私が考えることができる最善の解決策は、結果のリストに「結果なし」オブジェクトを追加し、マッチャーを使用してケースを処理することです。でも、なんとなくこれはまずい気がします。

他の提案はありますか?

4

1 に答える 1

2

私が現在使用しているソリューションは次のとおりです。

基本的に、空のオブジェクトをアイテムのリストにプッシュしますが、オブジェクトのマップにはプッシュしません。これにより、配列内に少なくとも 1 つの項目があるとソーターが認識します。そのため、ハイライターでマップからオブジェクトを取得しようとすると、オブジェクトは未定義になります。

// 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 に答える