Jquery 无法显示使用字体&;输入引导标记的建议;ajax调用

Jquery 无法显示使用字体&;输入引导标记的建议;ajax调用,jquery,twitter-bootstrap-3,bootstrap-typeahead,bootstrap-tags-input,Jquery,Twitter Bootstrap 3,Bootstrap Typeahead,Bootstrap Tags Input,下面的exp为我工作 $('#casecustomtag').bstagsinput({ typeahead: { displayText: function (text) { return text; }, source: function (query, response) { return ['Business and industry', 'Economics and finance'

下面的exp为我工作

$('#casecustomtag').bstagsinput({
    typeahead: {
        displayText: function (text) {
            return text;
        },
        source: function (query, response) {
            return ['Business and industry', 'Economics and finance', 'Education and skills', 'Employment, jobs and careers', 'Environment', 'Government, politics and public administration', 'Health, well-being and care', 'Housing', 'Information and communication', 'International affairs and defence', 'Leisure and culture', 'Life inthe community', 'People and organisations', 'Public order, justice and rights', 'Science, technology and innovation', 'Transport and infrastructure']
        },
        minLength: 2
    },
    addOnBlur: true,
    freeInput: true,
    confirmKeys: [13],
    splitOn: null,
    writerWidth: 'auto'
});
但是当我尝试ajax调用时,我看不到这个建议。不过,我的服务器得到了正确的响应

$('#casecustomtag').bstagsinput({
   typeahead: {
       displayText: function (text) {
           return text;
       },
       source: function (query, response) {
           return $.get('/ajax/customtags/gettags', {
               search: query,
               userId: 1
           }, function (data) {
               console.log(data);
               response =  $.map(data.data, function (item) {
                   console.log(item.text);
                   return item.text;                         
               });
               return response;
           }, 'json');
       },
       minLength: 2
   },
   addOnBlur: true,
   freeInput: true,
   confirmKeys: [13],
   splitOn: null,
   writerWidth: 'auto'
);
我使用bootstrap3作为参考,我刚刚将
tagsinput
重命名为
bstagsinput
,因为iIt与其他jquery插件冲突


请问,有谁能帮助我如何通过ajax动态显示建议?(我浪费了一整天的时间搜索解决方案,但对我来说没有任何用处。

从内存中,response参数是一个需要使用返回的数据调用的函数,但您正在覆盖它。您应该在ajax调用的成功回调中调用response函数

source: function (query, response) {
    return $.get('/ajax/customtags/gettags', {
        search: query,
        userId: 1
        }, function (data) {
             console.log(data);
             var result =  $.map(data.data, function (item) {
                  console.log(item.text);
                  item.text                            
             });
             response(result);
    }, 'json');
},

在浪费了整整一天的时间&代码调试之后,我找到了解决方案

source: function (query, process) {
                    return $.get('/ajax/customtags/gettags', { search: query, userId: 1 },
                        function (data) {});
                },
我并没有什么需要做的,因为回调部分是由插件自己处理的。我在插件的现有代码下面找到了它

source: function (query, process) {
                        function processItems(items) {
                            var texts = [];
                            for (var i = 0; i < items.length; i++) {
                                var text = self.options.itemText(items[i]);
                                map[text] = items[i];
                                texts.push(text);
                            }
                            process(texts);
                        }

                        this.map = {};
                        var map = this.map,
                            data = typeahead.source(query);

                        if ($.isFunction(data.success)) {
                            // support for Angular callbacks
                            data.success(processItems);
                        } else if ($.isFunction(data.then)) {
                            // support for Angular promises
                            data.then(processItems);
                        } else {
                            // support for functions and jquery promises
                            $.when(data)
                             .then(processItems);
                        }
                    },
来源:函数(查询、处理){
函数processItems(项目){
var文本=[];
对于(变量i=0;i
这会给出错误“未捕获类型错误:响应不是函数”