jquery – Twitter的typeahead-bloodhound:使用ajax.data和POST时,“%QUERY”相当于什么?

前端之家收集整理的这篇文章主要介绍了jquery – Twitter的typeahead-bloodhound:使用ajax.data和POST时,“%QUERY”相当于什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果使用Bloodhound和GET:
// Typeahead
personsBloodhound = new Bloodhound({
    datumTokenizer: function (person) { return person.name; },queryTokenizer: Bloodhound.tokenizers.whitespace,remote: {
        url: '/ajax/Persons/List?nameContains=%QUERY',ajax: {
            beforeSend: function(xhr) {
                $(".searching-person").show();
            },data: {
                "pageSize": 4,"otherParam1": "blah","otherParam2": "bleh",}
        },filter: function (response) {
            $(".searching-person").hide();
            return response.persons;
        }
    }
});

一个只是在URL中使用%QUERY.

现在….
如果使用Bloodhound和POST,我应该使用什么而不是%QUERY?

// Typeahead
personsBloodhound = new Bloodhound({
    datumTokenizer: function (person) { return person.name; },remote: {
        url: '/ajax/Persons/List',ajax: {
            type: "POST",beforeSend: function(xhr) {
                $(".searching-person").show();
            },data: {
                "nameContains": ....WHAT GOES HERE?????......
                "pageSize": 4,filter: function (response) {
            $(".searching-person").hide();
            return response.persons;
        }
    }
});

如果不清楚,问题是:
在Bloodhound的遥控器中使用POST时,%QUERY的等效值是多少?

文档不清楚,(证明):
https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md#remote

还尝试使用:

"nameContains": $("#my-input-that-uses-typeahead").val(),

但没有奏效.

解决方法

你必须以某种方式改变URL,否则血腥的人不会发送其他请求(见 @L_301_1@)和livesearch / typeahead不会工作.

所以(“#my-input-that-uses-typeahead”).val()与动态URL结合使用(eghttp://127.0.0.1:1234 / REST_API / _search?useless =%QUERY) ajax设置中的beforeSend-function.

我将提出有关此行为的问题.使用Bloodhound进行POST请求非常尴尬,并且带走了typeahead.js的简单性.

编辑:

还要确保在beforeSend中设置数据的新值并设置settings.hasContent = true.否则将使用初始数据.

关于如何完成的示例:https://github.com/twitter/typeahead.js/issues/542#issuecomment-29995960.

猜你在找的jQuery相关文章