Select2没有通过AJAX获取数据

Cam*_*ron 12 javascript jquery-select2

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

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

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

[{"label":"Organisation 1","ID":2},{"label":"Organisation 2","ID":1}]
Run Code Online (Sandbox Code Playgroud)

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

我得到的错误是: Uncaught TypeError: Cannot call method 'toUpperCase' of undefined

Aru*_*hny 35

尝试

$('#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
          };
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

演示:Plunker


Afn*_*hir 5

除了上面的解决方案,你可以做一件事,而不是返回跟随json

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

归还这个

[{"text":"Organisation 1","id":2},{"text":"Organisation 2","id":1}]

面对同样的问题,并在看了其他人提出的几个解决方案之后想出了这个问题.