Select2没有通过AJAX获取数据 [英] Select2 not getting data via AJAX

查看:340
本文介绍了Select2没有通过AJAX获取数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码,应该使用Select2通过AJAX获取数据

I have the following code which should be getting data via AJAX using Select2

$('#Organisation').select2({
    ajax: {
        url: AppURL + 'Organisations/Manage/SearchByName/',
        dataType: 'json',
        quietMillis: 100,
        data: function (term) {
            return {
                term: term
            };
        },
        results: function (data) {
            return {
                results: data
            };
        }
    }
});

如果我在搜索O时使用Web Inspector查看请求,我会得到:

If I look at the request using Web Inspector when searching 'O' I get:

[{"label":"Organisation 1","ID":2},{"label":"Organisation 2","ID":1}]

任何想法我做错了什么?我在结果函数中假设一些不正确的东西。

Any ideas what I'm doing wrong? I'd presume something incorrect in the results function.

我得到的错误是:未捕获的TypeError:无法调用未定义的方法'toUpperCase' / code>

The error I get is: Uncaught TypeError: Cannot call method 'toUpperCase' of undefined

推荐答案

尝试

$('#Organisation').select2({
    ajax: {
        url: 'data.json',
        dataType: 'json',
        quietMillis: 100,
        data: function (term) {
            return {
                term: term
            };
        },
        results: function (data) {
          var results = [];
          $.each(data, function(index, item){
            results.push({
              id: item.ID,
              text: item.label
            });
          });
          return {
              results: results
          };
        }
    }
});

演示: Plunker

这篇关于Select2没有通过AJAX获取数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆