Javascript 如何将一些API数据从v-for循环保存到mongodb?
我正在Vue中循环使用一些API数据。我想获取大括号Javascript 如何将一些API数据从v-for循环保存到mongodb?,javascript,mongodb,vue.js,Javascript,Mongodb,Vue.js,我正在Vue中循环使用一些API数据。我想获取大括号{{currency.description}}中显示的值,并将其发布到我的数据库中 例如,我尝试了PostService.insertPost(e.target.innerHTML) 还尝试了此操作。$refs.criteria[0]。innerHTML 当控制台记录时,它显示的正是我需要的,但当发布到db时,它显示为null VUE模板 <ul v-bind:key="currency.id" ref="criteria" v-fo
{{currency.description}}
中显示的值,并将其发布到我的数据库中
例如,我尝试了PostService.insertPost(e.target.innerHTML)代码>
还尝试了此操作。$refs.criteria[0]。innerHTML
当控制台记录时,它显示的正是我需要的,但当发布到db时,它显示为null
VUE模板
<ul v-bind:key="currency.id" ref="criteria" v-for="currency in info">
<li id="criteria" v-on:click="apiTest" >{{ currency.description }}</li>
</ul>
我的目标是将currency.description
的字符串值输入到我的数据库中,而不是显示为null
。我猜这与我返回的数据中的info数组有关,但我不确定如何进行。您想在li-元素上进行循环,并将描述传递给正在调用的单击函数,如下所示:
// Template
<template>
<ul>
<li
v-for="currency in info"
v-bind:key="currency.id"
v-on:click="apiTest(currency.description)">
{{ currency.description }}
</li>
</ul>
</template>
// Method / Click function
async apiTest(description) {
await PostService.insertPost(description);
}
//模板
-
{{currency.description}}
//方法/点击功能
异步apiTest(描述){
等待邮政服务。插入邮政(说明);
}
- {{currency.description}
apiTest:功能(货币){
//您可以获得html元素
//var元素=文档,getElementById(currency.id)
console.log(currency.description);
等待邮政服务。插入邮政(货币。说明);
}尝试使用wait PostService.insertPost(currency.description);在$nextTick函数中。我认为问题可能是加载DOM的延迟,因为它正在循环列表项。这显示了null:description:null createdAt:2019-06-04T08:26:24.199+00:00请尝试在apiTest
函数中记录控制台日志description
,看看它是否为null,否则可能是API的问题。我记录了它,控制台中的描述显示得非常完美。这似乎是您的API存在问题。您的方法工作正常。我缺少bodyParser.json中间件。
// Template
<template>
<ul>
<li
v-for="currency in info"
v-bind:key="currency.id"
v-on:click="apiTest(currency.description)">
{{ currency.description }}
</li>
</ul>
</template>
// Method / Click function
async apiTest(description) {
await PostService.insertPost(description);
}
<ul>
<li v-for="currency in info" :id="currency.id" @click="apiTest(currency)">{{ currency.description }} </li>
</ul>
apiTest: function (currency){
//You can get the html element
//var element = document,getElementById(currency.id)
console.log(currency.description);
await PostService.insertPost(currency.description);