#jquery #jinja2
#jquery #jinja2
Вопрос:
Я попытался вызвать автозаполнение 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. преобразовать в json и распечатать
Ответ №1:
Вы должны преобразовать его в JSON, а затем распечатать, для этого используйте tojson
filter. Поскольку JSON
используется допустимый javascript, нет необходимости в дополнительном синтаксическом анализе или переносе кавычек.
<script>
// .....
var tagsList = {{ autocompletList|tojson|safe }};
var availableTags = {{ Source|tojson|safe }};
// .....
<script>
Комментарии:
1. Большое спасибо, на мгновение я заключил это в двойные кавычки » » и я получил внутреннюю ошибку сервера 500, этот сервер всегда перенаправлял на URL, который отображает этот шаблон jinja, пока я снова не вернулся к вашему ответу и не удалил двойные кавычки, большое спасибо за вашу помощь, теперь он работает правильно
![]()