gpt4 book ai didi

javascript - 在 Vue.JS 中显示 Axios 响应数据

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:14 25 4
gpt4 key购买 nike

我编写此 Vue.JS 代码以对话格式显示从 PHP 文件收到的 JSON 响应。我当前的代码如下所示:

    const app = new Vue({
el: "#chatview",
data: {
messages:[],
txtInput: '',
mid:0
},
methods:{

GetBubbleType: function (name){
if(name === "AI")
return "yours messages";
else
return "mine messages";
},
},
mounted(){
axios.post('./ConversationGetter.php',{
function2call: 'getRecord',
id: 1,
}).then( response => {console.log(response.data);
this.data=response.data;
}).catch(error => {});

},
template: `
<div style ="font-family:Open Sans;font-size:16px">
<div v-for="message in messages">
<div class="fade-in">
<div v-bind:class="GetBubbleType(message.name)">
<div class="message last">
<p>{{message.message}}</p>
</div>
</div>
</div>
</div>
<form @submit.prevent="sendMessage('out')" id="person-form">
<p>
<input type="text" placeholder="Enter Your Query Here"style=" border-radius=25px" v-model="txtInput">
</input>
<input type="submit" placeholder="Send"style=" border-radius=25px">
</input>
</p>
</form>
</div>

`
})

从 PHP 收到的响应是(写在控制台上):

{
"data": [
{
"Modified_Time": "2019-12-13T16:08:36+05:30",
"$currency_symbol": "$",
"Message": "Hey!",
"Created_Time": "2019-12-13T16:08:36+05:30",
"Name": "AI",
},
{

"Modified_Time": "2019-12-13T16:08:27+05:30",
"$currency_symbol": "$",
"Message": "Yo!",
"Created_Time": "2019-12-13T16:08:27+05:30",
"Name": "Me",
},

],
}

PHP的返回行是:echo $result;返回 $result;

出于某种原因,它没有在聊天 View 中显示消息。我哪里出错了?

最佳答案

您的模板正在对组件的 data 中的 messages 对象执行 v-for。但是,您正在分配 this.data=response.data。这是在组件实例上创建属性 data,而不是分配 messages 值。

相反,只需将 this.data=response.data 更改为 this.messages=response.data.data

如评论中所述,您的响应主体在根部包含一个 data 数组,Axios 在 response.data 中返回响应主体,因此 response .data.data 是应该分配给 this.messages 的内容。

关于javascript - 在 Vue.JS 中显示 Axios 响应数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59350849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com