我一直在处理Vue.js和Django,并向按钮添加了函数调用。对于每种不同类型的食物,按钮都会多次显示,但是仅在单击第一个按钮时才会显示警报。可能是什么原因?
Django模板:
contract_id
JS:
{%if context%}
{%for fooditem in context%}
<div id = "vue-app2">
<button class = "btn-foodname" v-on:click="changeFoodName()">{{fooditem.food_name}}</button>
<p>{{fooditem.country_of_origin}}</p>
</div>
{%endfor%}
{%else%}
<p>Nothing to see here</p>
{%endif%}
答案 0 :(得分:1)
弄清楚了。我在for循环中使用了div
,因此它正在为每个按钮创建一个新的div。
答案 1 :(得分:0)
问题在于,使用模板可以用相同的应用程序ID制作多个块。应该是这样的:
{%if context%}
<div id = "vue-app2">
{%for fooditem in context%}
<div>
<button class = "btn-foodname" v-on:click="changeFoodName()">
{{fooditem.food_name}}
</button>
<p>{{fooditem.country_of_origin}}</p>
</div>
{%endfor%}
</div>
{%else%}
<p>Nothing to see here</p>
{%endif%}