在grails视图中,我具有以下代码段,用于填充select2的数据源
$(document).ready(function() {
$('.model-tags-select2').select2({
//placeholder: "Search existing tags and enter new tag",
tags: true,
multiple: true,
ajax: {
url: $.jummp.createLink("modelTag", "fetchTagsForSelect2"),
dataType: 'json',
type: "GET",
cache: true,
async: true,
processData: true,
data: function (params) {
var queryParameters = {
search: params.term
};
return queryParameters;
},
processResults: function (data) {
console.log(data);
return {
results: data
};
}
}
});
});
ModelTagController.groovy
def fetchTagsForSelect2() {
String term = params.get("search").encodeAsHTML()
List<String> tags = modelTagService.search(term)
List result = []
tags.eachWithIndex { String value, Long index ->
result.add(["id": index, "text": value])
}
println result
def rt = ["results": result] as JSON
println rt
render rt
}
当我在视图的选择选项中键入'C'时,打印语句将产生以下结果。
{"results":[{"id":0,"text":"Cannot be produced"}]}
[[id:0, text:Cannot be produced]]
{"results":[{"id":0,"text":"Cannot be produced"}]}
[[id:0, text:Cannot be produced]]
{"results":[{"id":0,"text":"Cannot be produced"}]}
[[id:0, text:Reproducible partially], [id:1, text:Cannot be produced],
[id:2, text:Reproducible], [id:3, text:New Approach]]
{"results":[{"id":0,"text":"Reproducible partially"},
{"id":1,"text":"Cannot be produced"},{"id":2,"text":"Reproducible"},
{"id":3,"text":"New Approach"}]}
console.log(data)
显示服务器返回了正确的数据格式以供选择。请参见下面的屏幕截图。
如果我取消注释或删除了placeholder
的{{1}}属性,则会遇到另一个jQuery错误。参见下图。
问题是:
您在工作中遇到过类似情况吗?
任何人都可以给我提示解决这些问题的方法吗?