Cam*_*ron 12 javascript jquery-select2
我有以下代码,应该使用Select2通过AJAX获取数据
$('#Organisation').select2({
ajax: {
url: AppURL + 'Organisations/Manage/SearchByName/',
dataType: 'json',
quietMillis: 100,
data: function (term) {
return {
term: term
};
},
results: function (data) {
return {
results: data
};
}
}
});
Run Code Online (Sandbox Code Playgroud)
如果我在搜索"O"时使用Web Inspector查看请求,我会得到:
[{"label":"Organisation 1","ID":2},{"label":"Organisation 2","ID":1}]
Run Code Online (Sandbox Code Playgroud)
我有什么想法我做错了吗?我在结果函数中假设一些不正确的东西.
我得到的错误是: Uncaught TypeError: Cannot call method 'toUpperCase' of undefined
Aru*_*hny 35
尝试
$('#Organisation').select2({
ajax: {
url: 'data.json',
dataType: 'json',
quietMillis: 100,
data: function (term) {
return {
term: term
};
},
results: function (data) {
var results = [];
$.each(data, function(index, item){
results.push({
id: item.ID,
text: item.label
});
});
return {
results: results
};
}
}
});
Run Code Online (Sandbox Code Playgroud)
演示:Plunker
除了上面的解决方案,你可以做一件事,而不是返回跟随json
[{"label":"Organisation 1","ID":2},{"label":"Organisation 2","ID":1}]
归还这个
[{"text":"Organisation 1","id":2},{"text":"Organisation 2","id":1}]
面对同样的问题,并在看了其他人提出的几个解决方案之后想出了这个问题.