如何在symfony 3中使用twitter / tyepahead.js和blodhound实现自动完成功能

时间:2016-12-04 15:43:53

标签: php ajax symfony typeahead.js bloodhound

我有一个ajax路由,它响应一个json数组,其中的站点从txt文件中获取它。在我的twig模板中,我使用typeahead函数来执行ajax调用,如:

var sites= new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.whitespace,
  queryTokenizer: Bloodhound.tokenizers.whitespace,

  remote: '{{'ajax_fun'}}'
});


$('#bloodhound .typeahead').typeahead({
  name: 'sites',
  source: sites
});

即使我得到带有网站的数组,输入字段上的过滤也不起作用。

1 个答案:

答案 0 :(得分:0)

如果有人想知道如何使用json数组从远程路径填充状态,这是我的解决方案:

var states = [];
var statesBloodhound = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.whitespace,
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  // `states` is an array of state names defined in "The Basics"
  local: states
});

//populate the statesBloodhound 
$.getJSON('path', {
}).done(function(data){
   statesBloodhound.add(data); 
})

$('#bloodhound .typeahead').typeahead({
  name: 'statesBloodhound ',
  source: statesBloodhound 
});