Javascript 选择2。js v4.0:如何显示和格式化本地阵列数据源?

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:

我正在使用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: "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对象