I am trying to use Vue.js in Django templates. One such template is the following:
{% load static %}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="myApp">
<span>Hello [[ message ]]</span>
<div id="map"></map>
</div>
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script src="https://v1.vuejs.org/js/vue.js"></script>
<script src="{% static 'js/script.js' %}"></script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=KEY&callback=initMap"></script>
</body>
</html>
I changed Vue's interpolation delimiters to [[ ]] to avoid conflict with Django. My script.js
looks as follows:
$(function() {
var app = new Vue({
el: '#myApp',
delimiters: ['[[', ']]'],
data: {
message: 'Hello, world!'
}
});
});
Unfortunately, the HTML rendered contains [[ message ]]
. Has anyone else faced a similar issue?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…