繁体   English   中英

typeahead.js远程不返回任何内容

[英]typeahead.js remote returns nothing

我似乎无法让typeahead.js的远程功能正常工作。 我正在发布代码以开始:

$(document).ready(function() {
    var locations = new Bloodhound({
        datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        remote: baseUrl + 'restaurants/fetchZIP/%QUERY'
    });

    $('#location').typeahead({
        hint: true,
        highlight: true,
        minLength: 1,
        source: locations.ttAdapter()
    });
    /*$('#location').keyup(function() {
        $.ajax({
            method: 'POST',
            dataType: 'json',
            url: baseUrl + 'restaurants/fetchZIP/',
            data: $('#add_restaurant').serialize(),
            success: function(data) {
                console.log(data);
            }
        });
    });*/
});

这是文件,我在该文件中执行Bloodhound远程操作,并在所需的输入字段上使用typeahead。 注释部分是一个测试,以确保我的数据库语句是否正确。 我不得不重新编写以下代码以进行测试,但基本上这只是从GET到POST的切换:

public function fetchZIP($query)
{
    $cantons = DataLoc::find(array('zip LIKE' => '%'.$query));
    echo json_encode($cantons);
}

这是“ restaurants / fetchZIP /”页面(用CodeIgniter编写)的操作。 因此,我真的不知道发生了什么,因为我无法在typeahead()函数中使用console.log(),所以我希望任何人都可以带领我回到正确的方向。

首先,您必须在定义它后立即通过locations.initialize()使用初始化猎犬。

这是初始化输入的方式

提前输入(选项,[*数据集])

您已将源(或数据集)包含在选项中,因此请尝试这样的操作

$('#location').typeahead({
    hint: true,
    highlight: true,
    minLength: 1
},{
    source: locations.ttAdapter()
});

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM