Как правильно преобразовать список в массив JavaScript? - PullRequest
1 голос
/ 21 марта 2019

Я пытался вызвать Jquery Автозаполнение , что источником опции автозаполнения является следующий список

{% set Source = ['Customer', 'Name', 'Salutation', 'First Name English', '[Type Item Here]'] %}

Поскольку Jquery AutoComplete принимает массив, я попытался найти способпреобразовать мой список в массив javascript, но безрезультатный результат.

  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

    <div class="col-sm-12">
      <div class="ui-widget">
        <label>Tags: </label>
        <input class="tags">
      </div>
    </div>

    {% set Source = ['Customer', 'Name', 'Salutation', 'First Name English', '[Type Item Here]'] %}

    <script>
        $(document).ready(function() {

        /* Auto Complete Form Label*/
        var availableTags = "{{Source|safe}}";

            // alert('auto');
            $( ".tags" ).autocomplete({
              source: availableTags,
              autoFocus: true,
              minLength: 1
            });
        })
    </script>

Следовательно, как мне правильно преобразовать мой список Source в массив javascript, чтобы и автозаполнение также работало?Спасибо

1 Ответ

1 голос
/ 21 марта 2019

Вы должны преобразовать его в JSON, а затем распечатать, для этого используйте tojson filter . Так как JSON является действующим javascript, нет необходимости в дополнительном разборе или переносе кавычек.

<script>

    // .....

    var tagsList = {{ autocompletList|tojson|safe }};
    var availableTags = {{ Source|tojson|safe }};

    // ..... 

<script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...