我正在为JQuery使用devbridge autocomplete插件。
到目前为止,我可以调用我的Rest API并获得一些结果。 My Rest Api使用PUT方法接受查询。但基本上我需要在查询中传递textfield(customer)的值。
基本上我需要在值每次更改时更新数据有效负载的值。但是当我跟踪开发者控制台时,$(“#customer”).val()为空。
我想我不会以正确的方式使用它。服务shoudl返回所有结果,然后在earch框中过滤。但由于某些原因,当我在搜索框中输入内容时,它未被过滤。我在列表框中有所有结果。
我尝试了以下代码,但它不起作用。
<script>
$(document).ready(function() {
$( "#customer" ).devbridgeAutocomplete({
serviceUrl: 'http://localhost:8080/services/rest/data/Customer/query',
type: 'PUT',
dataType: 'text',
ajaxSettings: {
'data': '{"select": {"from": ["Customer"],"where": {"full_text": [{"value": "'+$( "#customer" ).val()+'"}]}}}',
'contentType': 'application/json',
headers: {
'Authorization': 'Basic YXXtXX5pcXXyYXRvXXphZG1pbmlzdHJhdG9y'
},
},
transformResult: function(response) {
var responseObj = jQuery.parseJSON( response );
return { suggestions: $.map(responseObj, function(data) {
return { value: data.customer.fullname, data: data.customer.mdmcustid };
})};
},
onSelect: function (suggestion) {
console.log('You selected: ' + suggestion.value + ', ' + suggestion.data);
},
onSearchStart: function (query) {
console.log('Search terms: ' + $( "#customer" ).val());
}
});
});
</script>
你能告诉我如何解决这个问题吗?
非常感谢
答案 0 :(得分:0)
它正在使用自定义查找,但我不知道它是否是最好的方法。
lookup: function (query, done) {
$.ajax({
type: "PUT",
url: "http://localhost:8080/talendmdm/services/rest/data/Customer/query",
contentType: "application/json",
data: '{"select": {"from": ["Customer"],"where": {"full_text": [{"value": "'+$( "#customer" ).val()+'"}]}}}',
dataType: "text",
headers: {
'Authorization': 'Basic YWRtaW5pc3RyYXRvcjphZG1pbmlzdHJhdG9y'
},
success: function (res) {
var suggestionObj = { suggestions: $.map(jQuery.parseJSON( res ), function(data) {
return { value: data.customer.fullname, data: data.customer.mdmcustid };
})};
done(suggestionObj);
},
error: function (xhr, status, error) {
console.log( 'Query KO' );
}
});
},
onSelect: function (suggestion) {
console.log('You selected: ' + suggestion.value + ', ' + suggestion.data);
}