1

剣道オートコンプリート ウィジェットが ajax リクエストをサービスに送信する前に、URL を変更できません パラメータ マップで URL を変更する前に、最初に既にロードされています。剣道は検索文字列を URL に自動的に追加します。キーを押すと、URL を変更できますが、データは前の要求データでオートコンプリートにバインドされます。URLを変更する適切な場所を取得するように提案できますか。

   $('#AddressSearchTerm').kendoAutoComplete({
            dataTextField:"Text"
            filter: "contains",
            minLength: 2,
            delay: 700,
            dataSource: {
                type: "json",
                serverFiltering: true,
                transport: {
                    read: "http://services.postcodeanywhere.co.uk/CapturePlus/Interactive/Find/v2.00/json3.ws?SearchTerm=a&LastId=&SearchFor=Everything&Country=GBR&LanguagePreference=EN",
                    type: "POST",
                    dataType: "jsonp",
                    parameterMap: function (options, operation) {
                        var p = $('#AddressSearchTerm').data("kendoAutoComplete");
                        var serviceurl1 = "http://services.postcodeanywhere.co.uk/CapturePlus/Interactive/Find/v2.00/json3.ws?SearchTerm=" + options.filter.filters[0].value + "&LastId=&SearchFor=Everything&Country=GBR&LanguagePreference=EN";
                        p.dataSource.transport.options.read.url = serviceurl1;
                    }
                }, 

                schema:{data:"Items"}
             }
     });
4

1 に答える 1

2

paramMap で変数パラメーターを定義する代わりに、定義で使用する必要がありdataますtransport.read。ドキュメントには次のように記載されています。

ここに画像の説明を入力

したがって、コードは次のようになります。

$('#AddressSearchTerm').kendoAutoComplete({
    dataTextField: "Text",
    filter: "contains",
    minLength: 2,
    delay: 700,
    dataSource: new kendo.data.DataSource({
        type: "json",
        serverFiltering: true,
        transport: {
            read: {
                url: "http://services.postcodeanywhere.co.uk/CapturePlus/Interactive/Find/v2.00/json3.ws?SearchTerm=a&LastId=&Country=GBR&LanguagePreference=EN",
                data: function (options) {
                    console.log("value", options.filter.filters[0].value);
                    return "SearchTerm=" + options.filter.filters[0].value
                }
            },
            type: "POST",
            dataType: "jsonp",
        },

        schema: {data: "Items"}
    })
});
于 2014-11-13T10:20:19.977 に答える