Symfony-Twig TypeAhead Функция - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь реализовать функцию typeAhead.Я использую фреймворк Symfony.Но если кажется, что не работает.Ошибка, которую я получаю:

Uncaught 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 голосов
/ 22 ноября 2018

Добро пожаловать в переполнение стека.

Возможно, вы указываете на страницу этого примера и хотите реализовать Bloodhood (механизм подсказок typeAhead).

Если это так,рассмотрите возможность добавления typeahead.bundle.js, который имеет typeAhead и Bloodhood (вы можете просмотреть страницу и увидеть ссылку там ниже jQuery):

<script src="https://twitter.github.io/typeahead.js/releases/latest/typeahead.bundle.js"></script>
...