【发布时间】:2021-10-31 04:08:45
【问题描述】:
所以,对于上下文,我有一个应用程序的客户端,服务器通过套接字连接向客户端发送客户端的朋友。我可以检索朋友,甚至可以创建可点击的列表元素,以便用户可以向朋友发送消息等。但是我遇到的一个问题是,当使用 mustache 语法呈现信息时,什么也没有呈现。我有以下代码。
index.html(下面是app div里面的)
<div id="friends">
<p>Friends</p>
<ul id="friend-list">
<li
v-for="friend in friends"
v-on:click="setFriend(friend.id)"
>Friend:{{friend.text}}
</li>
</ul>
</div>
index.js
var socket = io.connect('http://localhost:3000');
var app = new Vue({
el: '#app',
data: {
messageContent: '',
friends: [],
messages: []
}
})
socket.on('connect', function(){
socket.emit('authentication', Cookies.get('user'));
socket.on('authenticated', function() {
socket.on('sendFriends',(data) => {
data.forEach(element => {
console.log(element.username)
app.friends.push({
text: element.username + '.'+element.id,
id: element.id
})
})
toUser = app.friends[0].id
})
})
})
即使我在没有来自套接字连接的数据的情况下填充朋友数组,每个元素上的文本也不会呈现。我的意思是,会有一些具有点击功能的项目符号,但是没有文本。但是,当我创建 codepen 时,数据会正确呈现。这是否与套接字连接以及 Vue 如何对数据更改做出反应有关? https://codepen.io/dvub/pen/XWaebyb(codepen 链接)
【问题讨论】:
-
是否有控制台错误?或者它根本不渲染?网络选项卡中应该有一些内容,您可以查看以查看您返回的内容,以确保它具有所有需要的属性。这让我想到了另一点。假设您缺少一个属性,但正在您的 Vue 模板中使用它(即
message.author)并且缺少作者,那么整个组件都会出错。 -
@RizaKhan 没有控制台错误,数据根本没有呈现。网络选项卡中的所有内容都有 200 个状态,我可以通过控制台记录所有传入数据以确保它存在。感谢您的回复。为了回答你的另一点,我确保 text 属性被推送,所以这不应该是一个问题。
标签: javascript html vue.js