Javascript 单击不在jquery select2 ajax中使用templateResult和templateSelection
我正在尝试使用ajax使用select2。 我尝试过这个例子,但由于某种原因,它不起作用。 我错过了什么?如果你能告诉我,我将不胜感激 下面是我的js代码Javascript 单击不在jquery select2 ajax中使用templateResult和templateSelection,javascript,jquery-select2,Javascript,Jquery Select2,我正在尝试使用ajax使用select2。 我尝试过这个例子,但由于某种原因,它不起作用。 我错过了什么?如果你能告诉我,我将不胜感激 下面是我的js代码 function formatState (state) { console.log(state); if(state.loading) { return state.text; } let $state = $( '<d
function formatState (state) {
console.log(state);
if(state.loading) {
return state.text;
}
let $state = $(
'<div>' +
'<h6>'+state.fld_name+' <small class="text-muted">'+state.fld_tel+'</small></h6>' +
'<p>'+state.fld_address+'</p>' +
'</div>'
);
return $state;
};
function formatStateSelection(state) {
return state.fld_name || state.text;
}
$('#select').select2({
cacheDataSource: [],
placeholder: "Select a state",
allowClear: true,
query: function(query) {
self = this;
var cachedData = self.cacheDataSource;
if(cachedData) {
query.callback({results: cachedData});
return;
} else {
$.ajax({
url: '/api/hq/all',
type: 'GET',
success: function(data) {
self.cacheDataSource = data;
query.callback({results: data});
}
})
}
},
templateResult: formatState,
templateSelection: formatStateSelection,
escapeMarkup: function(m) {
// Do not escape HTML in the select options text
return m;
}
函数格式化状态(状态){
console.log(状态);
如果(状态加载){
返回state.text;
}
让$state=$(
'' +
''+state.fld_name+''+state.fld_tel+''+
“”+state.fld_address+””+
''
);
返回$state;
};
函数formatStateSelection(状态){
返回state.fld_name | | state.text;
}
$(“#选择”)。选择2({
cacheDataSource:[],
占位符:“选择一个状态”,
allowClear:是的,
查询:函数(查询){
self=这个;
var cachedData=self.cacheDataSource;
如果(缓存数据){
callback({results:cachedData});
返回;
}否则{
$.ajax({
url:“/api/hq/all”,
键入:“GET”,
成功:功能(数据){
self.cacheDataSource=数据;
回调({results:data});
}
})
}
},
templateResult:formatState,
templateSelection:formatStateSelection,
逃逸标记:功能(m){
//不要在“选择选项”文本中转义HTML
返回m;
}
添加到,,,
我的代码如上所述,但是否有任何优雅的代码只在服务器上加载一次?
示例中的代码每次搜索时都与服务器通信,但这不是我想要的。
我想在一次服务器调用中获取所有数据