json - Select2 是否允许将 "text" key 的名称更改为其他名称?

标签 json jquery-select2 angularjs-select2

我有以下 Select2 配置。

$scope.select2Options = {
    simple_tags: false,
    placeholder : "Search for a language",
    multiple : true,
    contentType: "application/json; charset=utf-8",
    minimumInputLength : 3,
    ajax : {
        url : "/bignibou/utils/findLanguagesByLanguageStartingWith.json",
        dataType : 'json',
        data : function(term) {
            return  {
                language : term
            };
        },
        results : function(data, page) {
            return {
                results :
                    data.map(function(item) {
                        return {
                            id : item.id,
                            text : item.description
                        };
                    }
            )};
        }
    }
};

这使我可以正确填充 select2 控件。

但是,当我使用 Ajax 发布包含标签的整个表单(以及其他)时出现问题:发送到服务器的 json 数组包含具有两个名为 的属性的对象。 id text 而服务器需要 id description .

请参阅我的 json 中的片段:
"languages":[{"id":46,"text":"Français"},{"id":1,"text":"Anglais"}]

select2 是否允许更改 的名称? text 到别的东西?

最佳答案

将我的 js 更改为以下内容对问题进行了排序:

function format(item) { return item.description; };

$scope.select2Options = {   
    simple_tags: false,
    placeholder : "Search for a language",
    multiple : true,
    contentType: "application/json; charset=utf-8",
    minimumInputLength : 3,
    data:{ text: "description" },
    formatSelection: format,
    formatResult: format,
    ajax : {
        url : "/bignibou/utils/findLanguagesByLanguageStartingWith.json",
        dataType : 'json',
        data : function(term) {
            return  {
                language : term
            };
        },
        results : function(data, page) {
            return {
                results :
                    data.map(function(item) {
                        return {
                            id : item.id,
                            description : item.description
                        };
                    }
            )};
        }
    }
};

注意:必须使用 Select2 顶级属性 data .

关于json - Select2 是否允许将 "text" key 的名称更改为其他名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19358045/

相关文章:

javascript - 如何按日期计算对象数组中的出现次数

jquery-select2 - Select2 插件和 508 合规性

javascript - Select2 on change 事件在 Vuejs 中不起作用

angularjs - allowClear ="true"在 angular-ui 选择中不起作用

javascript - 如何初始化禁用的 select2

json - typescript :导入导入json文件的js库

python - Json 行 (Jsonl) 生成器转为 csv 格式

javascript - 如何循环多维数组并将字段映射到键

javascript - Select2 提交值而不是 id

gruntjs - 供应商 css 图像在连接和缩小后不可用