到目前为止,我一直在使用Select2的普通AJAX方法搜索和过滤数据服务器端,但现在我有一个用例,我想在打开select时通过AJAX检索所有结果,然后使用这些结果(现在存储)本地)搜索和过滤。
我已经在网上搜索了如何执行此操作的示例,我发现很多人都说应该使用Query方法而不是AJAX助手。不幸的是我没有找到任何例子。
到目前为止,我所管理的只是基本的:
$('#parent').select2({
placeholder: "Select Parent",
minimumInputLength: 0,
allowClear: true,
query: function (query) {
//console.log(query);
query.callback(data);
}
});
data = {
more: false,
results: [
{ id: "CA", text: "California" },
{ id: "AL", text: "Alabama" }
]
}
数据正在传递给select,但未实现查询过滤。
我很难理解select2文档,并希望获得任何帮助或链接到示例。
答案 0 :(得分:4)
尝试以下操作 - 将json数据预加载到局部变量中,并在准备好时将其绑定到select2 object
<script>
function format(item) { return item.text; }
var jresults;
$(document).ready(function() {
$.getJSON("http://yoururl.com/api/select_something.json").done(
function( data ) {
$.jresults = data;
$("#parent").select2(
{formatResult: format,
formatSelection: format,
data: $.jresults }
);
}
)
});
</script>