我正在使用select2
,我想为所呈现项目的text
属性设置自定义字段,而不是
text
字段的select2项目基本上,如果您看到this jsbin,您会看到类似的内容
$("#e10_3").select2({
data:{ results: data, text: function(item) { return item.tag; } },
formatSelection: format,
formatResult: format
});
但是如果我删除select2的自定义formatSelection和formatResult参数,我就无法使用text
的其他字段。
答案 0 :(得分:2)
我建议采用这种方法
$("#e10_3").select2({
data:{
results: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.tag,
id: item.id
...
}
})
};
}
},
formatSelection: format,
formatResult: format
});
答案 1 :(得分:1)
如前所述,此解决方案可以创建一个新阵列,但考虑到可读性,它似乎是一种更好的方法。在传递数据之前,您应该修改它。您可以在official docs
中看到这一点var data = $.map(yourArrayData, function (obj) {
obj.text = obj.text || obj.name; // desired field
return obj;
});
唯一的另一个选择是从一开始就准备与所需属性匹配的text
属性的数据。
$('your-select2-el').select2
data: $.map(yourArrayData, (obj) ->
obj.text = obj.your_custom_field_name # obj.title or obj.name etc.
obj
)
请参阅我之前提供的链接中的文档和this one