Javascript 选择2。js v4.0:如何显示和格式化本地阵列数据源?
我正在使用select2.jsV4.0(不是3.6!!!),我想显示和格式化javascript本地源代码:Javascript 选择2。js v4.0:如何显示和格式化本地阵列数据源?,javascript,jquery,jquery-select2,jquery-select2-4,Javascript,Jquery,Jquery Select2,Jquery Select2 4,我正在使用select2.jsV4.0(不是3.6!!!),我想显示和格式化javascript本地源代码: var data_names = [{ id: 0, text: "Henri", last_name: 'Barbusse' }, { id: 1, text: "John", last_name: 'Lenon' }, { id: 2, text: "Victor", last_name: 'Hugo' }, { id: 3, text:
var data_names = [{
id: 0,
text: "Henri",
last_name: 'Barbusse'
}, {
id: 1,
text: "John",
last_name: 'Lenon'
}, {
id: 2,
text: "Victor",
last_name: 'Hugo'
}, {
id: 3,
text: "Marie",
last_name: 'Stuart'
}, {
id: 4,
text: "Boriss",
last_name: 'Vian'
}];
例如,我的格式方法可以是:
function name_format(item) {
if (!item.last_name) {
return item.text;
}
var full_name = '<span class="my_class">' + item.text + ' ' + item.last_name + '</span>';
return full_name;
}
函数名\u格式(项){
如果(!item.last_name){
返回item.text;
}
var full_name=''+item.text+''+item.last_name+'';
返回全名;
}
您知道如何在v4.0中执行此操作吗?根据文档,您必须使用选项
templateResult
templateResult函数应该返回包含要显示的文本的字符串,或者返回包含应该显示的数据的对象(例如jQuery对象)。它还可以返回null,这将阻止该选项显示在结果列表中
像这样的东西应该可以
$('select').select2({
multiple: true,
data: data_names,
templateResult: name_format
});
函数名\u格式(项){
如果(!item.last_name){
返回item.text;
}
var full_name=$(“”+item.text+“”+item.last_name+“”);
返回全名;
}
$(函数(){
变量数据\u名称=[{
id:0,
文本:“亨利”,
姓:“巴布斯”
}, {
id:1,
文本:“约翰”,
姓氏:“列侬”
}, {
id:2,
文本:“胜利者”,
姓:“雨果”
}, {
id:3,
文本:“玛丽”,
姓:“斯图尔特”
}, {
id:4,
文本:“鲍里斯”,
姓:“维安”
}];
$('select')。选择2({
多重:对,
数据:数据名称,
templateResult:name\u格式
})
});代码>
选择{
宽度:250px;
}
根据文档,您必须使用选项templateResult
templateResult函数应该返回包含要显示的文本的字符串,或者返回包含应该显示的数据的对象(例如jQuery对象)。它还可以返回null,这将阻止该选项显示在结果列表中
像这样的东西应该可以
$('select').select2({
multiple: true,
data: data_names,
templateResult: name_format
});
函数名\u格式(项){
如果(!item.last_name){
返回item.text;
}
var full_name=$(“”+item.text+“”+item.last_name+“”);
返回全名;
}
$(函数(){
变量数据\u名称=[{
id:0,
文本:“亨利”,
姓:“巴布斯”
}, {
id:1,
文本:“约翰”,
姓氏:“列侬”
}, {
id:2,
文本:“胜利者”,
姓:“雨果”
}, {
id:3,
文本:“玛丽”,
姓:“斯图尔特”
}, {
id:4,
文本:“鲍里斯”,
姓:“维安”
}];
$('select')。选择2({
多重:对,
数据:数据名称,
templateResult:name\u格式
})
});代码>
选择{
宽度:250px;
}
根据select2文档:用户可以从中选择的对象应作为数组传递,每个对象包含id和文本
属性。不要认为他们已经改变了。谢谢,我已经根据select2文档编辑了我的问题:用户可以从中选择的对象应该作为一个数组传递,每个对象都包含id和文本
属性。不要认为他们已经改变了谢谢,我已经编辑了我的问题谢谢!Dhiraj它可以工作,但是它显示原始文本而不解释HTMLSE我答案的最后一部分。我提到name format方法应该返回一个dom对象谢谢!Dhiraj它可以工作,但是它显示原始文本而不解释HTMLSE我答案的最后一部分。我提到name format方法应该返回一个dom对象