2014-06-11 5 views
0

몇 가지 제안 사항을 표시하려면 twtter의 미리보기를 사용하고 싶습니다. 제안은 서버에서 나올 것이므로 원격 양식을 사용해야합니다. http://twitter.github.io/typeahead.js/examples/원격 배열이있는 typeahead.js 트위터

그러나 원격 예제는 모두 json을 반환합니다. 꽤 큰 데이터 세트가있을 것이므로 Redis에 저장하고 싶습니다. 데이터는 json이 아니라 값 배열에 저장하는 것이 좋습니다. 메모리를 절약합니다.

아직 레디 스 부분에 있지 않지만 단순히 배열을 반환하려고합니다. 그러나 나는 선택하기위한 정의되지 않은 옵션들을 얻는다.

모든 징후가 인정 될 것입니다.

나는 레일에 있습니다. 서버에서 렌더링 : 텍스트 => [ "abc", "sdf", "erw", gfg "]를 반환한다고 가정하면 어떻게 답변을 기반으로 제안 사항을 표시 할 수 있습니까?

. 구경에게 [▼ %

var bestPictures = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    prefetch: '../data/films/post_1960.json', 
    remote: '../data/films/queries/%QUERY.json' 
}); 

bestPictures.initialize(); 

$('#remote .typeahead').typeahead(null, { 
    name: 'best-pictures', 
    displayKey: 'value', 
    source: bestPictures.ttAdapter() 
}); 

감사

답변

1

나 자신에게

<script type="text/javascript"> 

$(function() { 
     var xx = new Bloodhound({ 
     datumTokenizer: Bloodhound.tokenizers.obj.whitespace("user"), 
     queryTokenizer: Bloodhound.tokenizers.whitespace, 
     remote: { 
     url: '/home/cp?c=%QUERY', 
     filter: function(list) { 
      console.log(list) 
      return $.map(list, function(name) { return { user: name}; }); 
     } 
     } 
    }); 

    xx.initialize(); 

    $('#remote .typeahead').typeahead(null, { 
     name: 'xx', 
     displayKey: 'user', 
     source: xx.ttAdapter() 
    }); 


}) 


</script> 



<div id="remote" style="text-align:center; margin-top: 200px;"> 
    <input class="typeahead" type="text"> 
</div> 

그래서 JSON 렌더링 반환을 답변 해 드리겠습니다 : 예를 들어 내가 JSON 대신 배열을에 적응하고 싶습니다 o bar]를 누르면 사용 가능한 옵션이 표시됩니다.

관련 문제