我有以下 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/