2

コード スニペットを次に示します。

        var bloodhound_obj = new Bloodhound({
           datumTokenizer: function(data) {
              var name = Bloodhound.tokenizers.whitespace(data.name);
              var id = Bloodhound.tokenizers.whitespace(data.id);
              return id.concat(name);
           },
           queryTokenizer: Bloodhound.tokenizers.whitespace,
           sorter: function(a, b) {
              if (a.id < b.id) {
                 return -1;
              }
              else if (a.id > b.id) {
                 return 1;
              }
              else return 0;
           },
           local: _data,
           limit: 10
        });
        bloodhound_obj.initialize();

        $("#autocomplete").typeahead({
           hint: false,
           highlight : true
        }, {
           displayKey: function(d) {
              return d.name + " (" + d.id + ")";
           },
           source: bloodhound_obj.ttAdapter(),
        });

現状では、提案は「id」でソートされており、ソートがクエリに依存するように変更したいと思います。$("#autocomplete").typeahead("val") (ソーター関数内) を含めようとしましたが、これは遅く、当面の問題にはやり過ぎのようです。

4

1 に答える 1