Symfony-Twig Type提前功能

时间:2018-11-22 03:56:04

标签: php symfony twig typeahead.js

我正在尝试实现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(
    ));

}

1 个答案:

答案 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>