有人可以帮我一起使用它们吗?尝试了相同主题的代码,但我不清楚或只是过时了。 首先,自动完成代码:
<script>
$( function() {
$( "#tags" ).autocomplete({
source: //What should be here?
});
});
</script>
然后,控制器代码:
def auto(term:String) = Action {
Ok (Json.toJson(equipmentDAO.get(term))) }
}
方法 equipmentDAO.get(term))搜索 name == term 的对象并返回它们的Seq。
路线:
GET /auto/:term controllers.BasicController.auto(term : String)
答案 0 :(得分:1)
要启用自动完成功能,您必须提供JSONP object。
在play2中,我使用这种模式取得了一些成功
$( "#tags" ).autocomplete({
select : function(event, ui) {
//... do something if selected
return false;
},
source : function(request, response) {
$.ajax({
url : "/myautocompletionEndpoint",
dataType : "jsonp",
data : {
q: request.term,
},
success : function(data) {
response(data);
}
});
}
});
在路由/myautocompletionEndpoint
下,我提供了一个返回JSONP对象的控制器。
控制器方法的签名是:
public CompletionStage<Result> subjectAutocomplete(String q)
。
它会创建一个结果列表:
[
{"label":"Some label","value":"Some Value"},
....
]
默认情况下,jQuery自动完成小部件会向控制器发送一个额外的回调参数,例如&callback=jQuery110208100147994940178_1491819270607
。您必须获取它的内容并将结果列表包装到其中。您可以通过
request().queryString().get("callback");
所以最后看起来像是:
String result="/**/jQuery110208100147994940178_1491819270607([{"label":"Some label","value":"Some Value"}])";