我正在使用select2,我想为text没有渲染项目的属性设置自定义字段
text字段的select2项基本上如果你看到这个jsbin,你会看到这样的东西
$("#e10_3").select2({
data:{ results: data, text: function(item) { return item.tag; } },
formatSelection: format,
formatResult: format
});
Run Code Online (Sandbox Code Playgroud)
但是如果我删除了select2的自定义formatSelection和formatResult参数,我就失去了使用不同字段的能力text.
正如前面的答案,该解决方案确实创建了一个新数组,但考虑到可读性,它似乎是一个更好的方法。在传递数据之前,您应该修改它。你可以在官方文档中看到这一点
var data = $.map(yourArrayData, function (obj) {
obj.text = obj.text || obj.name; // desired field
return obj;
});
Run Code Online (Sandbox Code Playgroud)
唯一的其他选择是text从一开始就准备具有与所需属性匹配的属性的数据。
$('your-select2-el').select2
data: $.map(yourArrayData, (obj) ->
obj.text = obj.your_custom_field_name # obj.title or obj.name etc.
obj
)
Run Code Online (Sandbox Code Playgroud)
请参阅我之前提供的链接和这个链接中的文档