Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将一些API数据从v-for循环保存到mongodb?_Javascript_Mongodb_Vue.js - Fatal编程技术网

Javascript 如何将一些API数据从v-for循环保存到mongodb?

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

我正在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-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);