使用devbridge Jquery自动完成插件的PUT方法和有效负载

时间:2015-06-09 14:00:17

标签: javascript jquery autocomplete jquery-autocomplete

我正在为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>

你能告诉我如何解决这个问题吗?

非常感谢

1 个答案:

答案 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);
        }