json 파일을 소스로 사용하여 선행 작업을 사용하여 개체 목록을 표시하는 방법을 파악하는 데 어려움을 겪고 있습니다. 내 데이터가 표시되지 않습니다.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
죄송합니다. JSON 개체 배열이 포함되어 있다고 말해야합니다 (내 대답이 업데이트되었습니다). Bloodhound에는 JavaScript 객체가 필요하므로 $ .map()을 호출하여 JavaScript 객체 배열을 생성해야합니다. –
이 피들을 참조하십시오 http://jsfiddle.net/Fresh/UkB7u/ 작동중인 맵 –