[英]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.