Bloodhound.js: 转换远程源返回的数据?
Bloodhound.js: Transform the data returned by a remote source?
我将 Bloodhound 与遥控器 API 一起使用,我需要从遥控器 API 转换 return 的结果。
API URL 是 https://www.googleapis.com/books/v1/volumes?q=quilting,其中 return 是一个对象,items
属性 是一个列表。我需要 return 该列表到 Typeahead,而不是顶级对象。
Bloodhound 文档说 there is a transform
function that is supposed to do this,但我无法让它工作。
这是我的代码:
var books = new Bloodhound({
datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'https://www.googleapis.com/books/v1/volumes?q=quilting'
},
transform: function(response) {
console.log('transform', response);
return response.items;
}
});
books.initialize();
// instantiate the typeahead UI
$('#myTextBox').typeahead(null, {
displayKey: function(suggestion) {
console.log('suggestion', suggestion);
return suggestion.volumeInfo.title + suggestion.volumeInfo.publishedDate;
},
source: numbers.ttAdapter()
});
还有一个 JSFIddle:http://jsfiddle.net/2Cres/46/
这不起作用,因为我需要将 items
列表输入预输入 UI,但这似乎没有发生。
尝试在远程选项中移动变换,如下所示:
remote {
url:"fdsfds",
transform: function (response){...}
}
我将 Bloodhound 与遥控器 API 一起使用,我需要从遥控器 API 转换 return 的结果。
API URL 是 https://www.googleapis.com/books/v1/volumes?q=quilting,其中 return 是一个对象,items
属性 是一个列表。我需要 return 该列表到 Typeahead,而不是顶级对象。
Bloodhound 文档说 there is a transform
function that is supposed to do this,但我无法让它工作。
这是我的代码:
var books = new Bloodhound({
datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'https://www.googleapis.com/books/v1/volumes?q=quilting'
},
transform: function(response) {
console.log('transform', response);
return response.items;
}
});
books.initialize();
// instantiate the typeahead UI
$('#myTextBox').typeahead(null, {
displayKey: function(suggestion) {
console.log('suggestion', suggestion);
return suggestion.volumeInfo.title + suggestion.volumeInfo.publishedDate;
},
source: numbers.ttAdapter()
});
还有一个 JSFIddle:http://jsfiddle.net/2Cres/46/
这不起作用,因为我需要将 items
列表输入预输入 UI,但这似乎没有发生。
尝试在远程选项中移动变换,如下所示:
remote {
url:"fdsfds",
transform: function (response){...}
}