【发布时间】:2018-04-16 18:36:24
【问题描述】:
我正在努力迭代这个对象数组。我没有看到任何控制台错误,也不确定数据未显示的原因。
{
"messages":[
{
"id":1,
"sender":"frank",
"message":"Lorem ipsum...",
"time":1398894261,
"status":"read"
},
{
"id":2,
"sender":"mary",
"message":"Lorem ipsum...",
"time":1390824261,
"status":"read"
},
{
"id":3,
"sender":"john",
"message":"Lorem ipsum...",
"time":1308744200,
"status":"unread"
}
]
}
我正在使用 http get 请求并且数据正在输入,但我无法遍历它。这是我的js:
new Vue({
el: '#app',
data: '',
ready: function() {
// GET request
this.$http.get('https://www.example.com/file.json', function (data) {
// set data on vm
this.$set('data', data.messages);
}).error(function (data, status, request) {
console.log('http request error')
})
}
})
这是我的 html:
<div v-if="data">
<li v-for="d in data">{{ d.sender }}</li>
</div>
<p>{{data[0].sender}}</p> <!-- this part works -->
【问题讨论】:
-
首先,在创建消息时,将消息重新定义为数据对象中的空数组。而不是 $set,只需将 data.messages 分配给 this.messages,并使用计算属性从数据中提取消息并在模板中迭代它。
标签: javascript arrays json vue.js