我很難搞清楚如何顯示一個json文件作爲源使用typeahead的對象列表。我的數據都沒有顯示。如何列出Typeahead.js和/或Bloodhound引擎的對象?
我想列出名稱,並在選擇時使用其他屬性的其他屬性。
../data/test.json
[
{"name": "John Snow", "id": 1},
{"name": "Joe Biden", "id": 2},
{"name": "Bob Marley", "id": 3},
{"name": "Anne Hathaway", "id": 4},
{"name": "Jacob deGrom", "id": 5}
]
test.js
$(document).ready(function() {
var names = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace("name"),
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
url: '../data/test.json'
}
});
names.initialize();
$('#test .typeahead').typeahead({
name: 'names',
displayKey: 'name',
source: names.ttAdapter()
});
)};
的test.html
<div id="test">
<input class="typeahead" type="text">
</div>
**如果有人可以解釋給我什麼datumTokenizer和queryTokenizer是,這將是可怕的**
感謝解釋斷詞,這是有幫助的。但是我對你的陳述感到困惑,「JSON文件包含一個字符串數組,但Bloodhound建議引擎期望JavaScript對象」。我的JSON文件包含一個對象列表,而不是字符串。 – Vongdarakia 2014-10-08 13:24:03
對不起,應該說它包含一個JSON對象數組(我更新了我的答案)。 Bloodhound需要JavaScript對象,因此調用$ .map()來產生JavaScript對象數組。 – 2014-10-08 13:27:36
看到這個小提琴http://jsfiddle.net/Fresh/UkB7u/對於地圖在行動 – 2014-10-08 13:54:09