----- // 远程数据源
var prefetch_prjtype = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('dicName'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace,// 预获取并缓存 
    remote: {url:'dic/prjType/children/%QUERY',wildcard: '%QUERY',
    transform :function(response){ 
        console.log(JSON.stringify(response)); // ***此处返回值为3条记录,但是查询列表中只有2条记录****
        return response; }} 
     //prefetch: 'dic/prjType/children/项目'  // ***prefetch数据源显示正常,只有remote时显示不正常****
     });
prefetch_prjtype.initialize(); 
$('#prjType').typeahead({ hint: true, 
                                         highlight: true, 
                                         minLength: 1 },
                                       { name: 'prjTypesquery', 
                                         displayKey: 'dicName', 
                                         source: prefetch_prjtype, 
                                         templates: { //这个函数决定下拉列表中的每一行怎么渲染。 
                                                             suggestion: Handlebars.compile('<p>ID:{{id}} - name:{{dicName}}</p>') 
                                                            } 
                                        }); ------如图, 求大神解答

解决方案 »

  1.   

     //自动补全
       jQuery(function(){
       $("#name").typeahead({
       hint: true
       },
       {
       name:'students',
       display: 'studentName',
       source: function (query, process) {
       var resultList=null
       $.ajax({
                url: 'xxx.do',
                type: 'post',
                async:false,
                data: {query: query},
                dataType: 'json',
                success: function (result) {    
                   // 这里的数据解析根据后台传入格式的不同而不同  
                        resultList= result;                               
                }
            });
       resultList=process(resultList);
            return resultList;
        }, 
       })
    我是这样解决的