<template id="task-template"> <h1>My Tasks</h1> <tasks-app></tasks-app> <ul class="list-group"> <li class="list-group-item" v-for="task in list"> {{task.body|e}} </li> </ul> </template>
以上是我的html。我想改为通过Vue呈现代码。
<script> Vue.component('tasks-app', { template: '#tasks-template', data: function() { return { list: [] } } created: function() { $.getJson('/api/tasks', function(data) { this.list = data; }) } }) new Vue({ el: 'body', }); </script>
上面是我的Vue代码,Jinja提出了一个例外,即“任务”未定义,我希望的是Vue而不是Jinja呈现的html代码,我知道可以在Laravel中使用以下代码来完成:
"@{{task.body}}"
由于我是Jinja的新手,所以有人可以帮助我吗?
另一个选择是重新定义Vue.js使用的分隔符。如果你有很多现有的模板代码,并且希望开始将Vue.js功能添加到Flask或Django项目中,则这非常方便。
var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' }, delimiters: ['[[',']]'] })
然后在你的HTML中,你可以混合使用Jinja和Vue.js模板标签:
<div id="app"> {{normaltemplatetag}} [[ message ]] </div>
不知道何时添加了“ delimiters”属性,但该属性在2.0版中。