添加的项目不会出现在typeahead中

时间:2015-07-23 02:10:50

标签: javascript html typeahead.js

// JS script
var company = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    prefetch: 'json/receiver-company.json'
});

$('#prefetch .typeahead').typeahead(null, {
    name: 'company',
    display: 'name',
    source: company,
    templates: {
        empty: [
            '<div class="empty-message">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',
            'No results found.',
            '</div>'
        ].join('\n'),
        suggestion: function(data){
            return '<p><strong>' + data.name + '</strong></p>';
        }
    }
});

// json/receiver-company.json
[
    {"company_id":"1","name":"Company One"},
    {"company_id":"2","name":"Company Two"},
    {"company_id":"3","name":"Company Three"},
    {"company_id":"4","name":"Company Four"}
]

我正在使用Twitter's typeahead prefetch来填充字段。它工作正常,但是当我向JSON文件添加一个新项目时,它没有出现在typeahead列表中。我尝试清除缓存并重新启动浏览器。有没有人有另一个想法?

1 个答案:

答案 0 :(得分:0)

我已经解决了自己的问题。 。

只需添加cache = false就可以预取这样的内容。

 prefetch: {
      url: 'json/receiver-company.json',
      cache: false
 }

这是我找到bloodhound

的地方