0
這是我的Vue如何在vuejs v-for draggable list中渲染瓶子jinja2對象?
<div class="drag">
<h2>List 1 Draggable</h2>
<draggable id="cat1" v-model="list" :move="checkMove" class="dragArea" :options="{group:'people'}">
<div v-for="element in list">${ element.name }</div>
</draggable>
<h2>List 2 Draggable</h2>
<draggable id="cat2" v-model="list2" :move="checkMove" class="dragArea" :options="{group:'people'}">
<div v-for="element in list2">${ element.name }</div>
<p>another</p>
</draggable>
</div>
<script>
var vm = new Vue({
el: "#main",
delimiters:['${', '}'],
data: {
list: [{
name: "John"
}, {
name: "Joao"
}, {
name: "Jean"
}],
list2: [{
name: "Juan"
}, {
name: "Edgard"
}, {
name: "Johnson"
}]
}
}
</script>
This works great。列表中的數據正確顯示並且可拖動。現在我想將下列字典傳遞給燒瓶中的數據對象,以便我可以渲染它。
對象時只用{{ data }}
看起來像渲染:
{u'uncategorized': [{'name': u''}, {'name': u'first'}, {'name': u'another'}]}
所以你可以看到其對相同的格式對象被傳遞到數據:
{
list: [{
name: "John"
}, {
name: "Joao"
}, {
name: "Jean"
}],
list2: [{
name: "Juan"
}, {
name: "Edgard"
}, {
name: "Johnson"
}]
}
但是當我嘗試只是在vue中代替data: {{ data }}
,它不能正確渲染。
那麼我需要做什麼才能讓瓶中的數據對象讓Vue「接受」它呢?
你能說說你說的第一件事嗎?以某種方式像axios那樣獲取數據,然後將數據附加到該數據會更好嗎? – BigBoy1337
很難一概而論,但我認爲大部分時間都是更乾淨的方法,甚至認爲您需要數據的端點,而這是異步調用,會增加額外的請求。這取決於你希望你的應用程序如何異步。將數據呈現到vue組件的模板中通常不是不好的做法,只需將它添加到應用程序的源代碼中即可。如果你使用vue-api來實現它(例如使用自定義屬性來傳遞來自外部模板的數據),除了更高的耦合之外,沒有太多的反駁。 –
在這種情況下,這只是一半的權利。 Flask/Jinja有插入JSON數據的特定機制。看到重複。 – davidism