原谅我这个非常愚蠢的问题。
我有这样的东西:
var app = new Vue({
el: '#app',
data: {
words: []
},
created() {
let something = document.getElementById('word_data')
if (something) { this.words = something.dataset.content.slice() }
}
})
这是HTML部分:
<input type="hidden" id="word_data" data-content="["one","two","thee"]">
这只是["one", "two", "three", "four", "etc"]
格式的数组。
我正在尝试将此数组分配给Vue中的words
。我该怎么办?
如果我按照示例中的方式分配它,它将把整个数组作为一条记录。
我确信这很简单。我想念什么?
答案 0 :(得分:2)
只需获取元素的data-content
属性值,然后使用JSON.parse()
即可将其转换为您提供的格式。
var app = new Vue({
el: '#app',
data: {
words: []
},
created() {
const element = document.getElementById('word_data');
const data = JSON.parse(element.getAttribute('data-content'));
if (data) { this.words = data }
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.min.js"></script>
<input type="hidden" id="word_data" data-content="["one","two","thee"]" >
<div id="app">
<ul>
<li v-for="word in words">{{word}}</li>
</ul>
</div>