我试图通过套接字从服务器获取数据。 但是vue没有填满表,因为客户端有一个数组,服务器返回对象。
服务器侧
...
const r = require('rethinkdb');
const io = socketIO(server);
r.connect(db)
.then(conn => {
io.on('connection', (client) => {
r.table('messages')
.run(conn)
.then(cursor => {
cursor.each((err, message) => {
io.sockets.emit('messages', message);
});
});
client-vue
<template>
....
<table>
<tr>
<th>name</th>
<th>message</th>
<th>date</th>
</tr>
<tr v-for="object in objects" :key="object.id">
<td>{{object.id}}</td>
<td>{{object.name}}</td>
<td>{{object.message}}</td>
<td>{{object.date}}</td>
</tr>
</table>
...
<script>
export default {
name: 'App',
data () {
return {
objects: []
}
},
methods: {
send () {
this.$socket.on('test',message => {
this.objects = message
console.log(message)
})
}
}
在控制台中: 但是vue需要一组对象: myrepo(全码) https://github.com/EvgenJin/REVN_project
答案 0 :(得分:0)
您应该只使用数组上的推送。
this.$socket.on('test', message => {
this.objects.push(message)
})
因为在HTML中你需要一个对象数组。