Typeahead.js:在初始化时获取远程数据的事件?

时间:2015-04-27 14:16:27

标签: javascript typeahead.js

我有一个用于Typeahead输入的远程Bloodhound源。远程源返回书籍列表及其发布日期。 Typeahead输入允许用户键入标题,然后使用远程数据自动填充以包括日期。

我想仅使用书名设置输入的初始值(我不知道该点的发布日期),然后将值更新为日期。这对我的代码工作正常。

但是,我想在值更新时监听事件以包含数据。这样我就可以将日期设置为页面中其他位置的属性。

如何获取获取远程数据且日期已知的点?

这是我的代码:

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) {
      return response.items;
    }
  }
});
books.initialize();

$('input').typeahead(null, {
  displayKey: function(suggestion) {
    return suggestion.volumeInfo.title + ' (' + suggestion.volumeInfo.publishedDate + ')';
  },
  source: books.ttAdapter()
});

$('input').typeahead('val', 'Your First Quilt Book');

// Question: 
// When the 1997 date of this book is known, set it elsewhere in the page?

JSFiddle:http://jsfiddle.net/2Cres/50/

我已经尝试过收听displayKey,但在第一次加载时似乎会多次启动。

0 个答案:

没有答案