我正在尝试实现typeAhead函数。我正在使用Symfony框架。但是,如果没有奏效。 我收到的错误是
未捕获的ReferenceError:未定义Bloodhound
我对symfony和twig非常陌生。有人可以指出为什么代码不起作用的原因吗?
树枝
<div id="prefetch">
<input class="typeahead" type="text" placeholder="Countries">
</div>
<script type="application/javascript">
var countries = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
// url points to a json file that contains an array of country names, see
// https://github.com/twitter/typeahead.js/blob/gh-pages/data/countries.json
prefetch: '{{ path('typeAhead') }}'
});
// passing in `null` for the `options` arguments will result in the default
// options being used
$('#prefetch .typeahead').typeahead(null, {
name: 'countries',
source: countries
});
</script>
控制器(响应)
/**
* @Route("/typeAhead", name="typeAhead")
*/
public function typeAheadAllAction(Request $request)
{
$products=$this->getDoctrine()->getRepository(products::class)->findAll();
$pr_name=array();
foreach($products as $product){
$name=$product->getName();
array_push($pr_name,$name);
}
return new Response(json_encode(array($pr_name)),100);
}
控制器(渲染树枝文件)
/**
* @Route("/test", name="test")
*/
public function testAction(Request $request)
{
return $this->render('typeahead.html.twig', array(
));
}
答案 0 :(得分:2)
欢迎堆栈溢出。
也许您指向this example page,并且想要实现Bloodhood(typeAhead的建议引擎)。
如果是这样,请考虑添加同时具有typeAhead和Bloodhood的typeahead.bundle.js
(您可以检查页面并查看jQuery下面的链接):
<script src="https://twitter.github.io/typeahead.js/releases/latest/typeahead.bundle.js"></script>