#javascript #vue.js #jinja2
#javascript #vue.js #jinja2
Вопрос:
Я делаю этот пример из VUE.js веб-сайт для получения списка продуктов. Хотя я получаю некоторое поведение от компонентов, оно работает не полностью, и я исчерпал все свои возможности, чтобы попытаться его отладить, поэтому я прибегаю к вашей бесконечной мудрости:
Вот что у меня есть:
HTML:
{% extends "layout.html" %}
{% block content %}
<div id="app">
<ol>
<todo-item
v-for="item in groceryList"
v-bind:todo="item"
v-bind:key="item.id"
></todo-item>
</ol>
</div>
{% endblock %}
VUE:
Vue.component('todo-item', {
props: ['todo'],
template: '<li>[[ todo.text ]]</li>'
})
var app= new Vue({
el: '#app',
delimiters: ['[[', ']]'],
data: {
groceryList: [
{ id: 1, text: 'Vegetables' },
{ id: 2, text: 'Cheese' },
{ id: 3, text: 'Bread' }
]
}
})
Ожидаемый результат:
- Овощи
- Сыр
- Хлеб
Мой результат:
- [[ todo.text ]]
- [[ todo.text ]]
- [[ todo.text ]]
Я использую delimiters: ['[[', ']]'],
, чтобы отличать переменные VUE от переменных Jinja2.
Я попытался заменить: template: '<li>[[ todo.text ]]</li>'
by template: '<li>{{ todo.text }}</li>'
, но это приводит к тому, что Jinja2 выдает ошибку.
Есть идеи?
Заранее спасибо.
Комментарии:
1. Ограничения: эта опция доступна только в полной сборке с компиляцией в браузере. Так что это зависит от того, какой пакет Vue вы загружаете. vuejs.org/v2/api/#delimiters
Ответ №1:
Я думаю, вам следует установить delimeter в дочернем компоненте.