2015-09-18 2 views
0

Я использую typeahead и ищейку для проекта, и я нахожу его действительно неинтуитивным, а также разочаровывающим. Что-то, что должно занять секунду, заканчивается за час исследования.Typeahead/Bloodhound - количество результатов

В любом случае я пытаюсь предупредить количество результатов в моей ищейке.

Вот мой код до сих пор

var pisList = new Bloodhound({ 
       datumTokenizer: Bloodhound.tokenizers.whitespace, 
       queryTokenizer: Bloodhound.tokenizers.whitespace, 
       prefetch: { 
        url: "../Helper/LookUpPIs?list=" + $list, 
        cache: false 
       } 
      }); 

      alert(pisList.length); 

      //Typeahead on project numbers 
      $('.pis').typeahead({ 
       hint: true, 
       higlight: true, 
       minLength: 1 
      }, 
       { 
        name: 'pis', 
        source: pisList 
       }); 

      //Display project details distribution panel 
      $('input.pis').on('typeahead:selected', function (event, selection) { 
       var result = selection.match(/\((.*)\)/); 
       getPiInformation(result[1]); 
      }); 
      return false; 
     } 

Сейчас моя тревога вернуть меня неопределенными. Я попробовал несколько вариантов, но ни один из них не был успешным.

Дайте мне знать, если у вас есть намек и спасибо заранее.

+0

Очевидно, это не так просто – vegas2033

+0

Up пост мне нужна помощь – vegas2033

ответ

0

Это глупый путь, но он работает. Я должен был создать скрытое поле, пропустить каждый результат в datumtokenizer и увеличить значение.

var pisList = new Bloodhound({ 
       //datumTokenizer: Bloodhound.tokenizers.whitespace, 
       datumTokenizer: function (d) { 
        //count number of PIS found and put their ID in the field 
        $('#numberofPIs').val(Number($('#numberofPIs').val()) + Number(1)); 
        return tokens; 
       }, 
       queryTokenizer: Bloodhound.tokenizers.whitespace, 
       prefetch: { 
        url: "../Helper/LookUpPIs?list=" + $list, 
        cache: false 
       } 
      }); 

Наверное, не самый лучший и чистый способ, но он работает

0
alert(

    Object.keys(pisList.index.datums).length 

); 
Смежные вопросы