javascript - select2从本地json文件加载数据

标签 javascript json jquery-select2

我已经设置了 select2 并使用 JS 变量加载数据,但是因为我的数据有很多选项(国家/地区),所以我想从 a 加载它们,而不是在我的JS。

我创建了一个包含所有国家/地区的countries.json 文件,我使用下面的代码尝试将它们拉入。但是我收到错误 无法加载结果.

代码:

$('#allowedCountries').select2({
    placeholder: 'Select allowed countries',
    selectOnClose: false,
    tags: false,
    tokenSeparators: [',', ' '],
    ajax: {
        dataType : "json",
        url      : "includes/countries.json",
        processResults: function (data) {
            return {
                results: $.map(data, function(obj) {
                    return { id: obj.ime, text: obj.ime };
                })
            };
        }
    },
});

国家.json

[{id:1, text: 'Afghanistan'},
{id:2, text: 'Aland Islands'},
{id:3, text: 'Albania'},

...

{id:245, text: 'Yemen'},
{id:246, text: 'Zambia'},
{id:247, text: 'Zimbabwe'}]

最佳答案

在@Camille的帮助下找到了解决方案。

  1. 不必要地重新处理 json 文件(仅当您的 json 文件使用与 "id""text" 不同的标识符时才需要

  2. >
  3. json 文件格式不正确,请参阅 https://select2.org/data-sources/formats

代码:

// Create countries dropdown
$('#allowedCountries').select2({
    placeholder: 'Select allowed countries',
    selectOnClose: false,
    tags: false,
    tokenSeparators: [',', ' '],
    ajax: {
        dataType : "json",
        url      : "includes/countries.json",
    },
});

国家.json

{
    "results": [
    {
        "id": 1,
        "text": "Afghanistan"
    },
    {
        "id": 2,
        "text": "Aland Islands"
    },
    {
        "id": 3,
        "text": "Albania"
    },

...

    {
        "id": 245,
        "text": "Yemen"
    },
    {
        "id": 246,
        "text": "Zambia"
    },
    {
        "id": 247,
        "text": "Zimbabwe"
    }
    ]
}

关于javascript - select2从本地json文件加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47529256/

相关文章:

javascript - 折叠具有初始状态的面板

javascript - 从 Json 中获取条件值,将唯一值分组

c# - 使用以复杂类型为键的对象引用和字典将复杂类型序列化/反序列化为 Json

javascript - 选择 2 : load asynchronous data through promise

javascript - 使用 select2 4.0.3 添加所有匹配项

javascript - ng-sidebar(Angular 2)实现问题

javascript - 通过表单 Controller 访问 div 颜色选择器元素

javascript - 未捕获的 SyntaxError : Unexpected token else, 完全被难住了

mysql - 多对多关系 - 在 MySQL 中获取双行

jquery - select2 - 动态更改配置