我有这个代码
(请注意HTML类'symbolTicket“')



<template>

  <div class="chart">

    <span class="symbolTicket">
      {{getTicket()}}
    </span>

    <div class="chartContent">

    </div>
    <!--   <div class="chartContent">  end   -->

  </div>
  <!--   <div class="chart">   end   -->

</template>

<script>
  import axios from 'axios';

export default{

  data() {
    return {
    };
  },

  methods: {

    getTicket: function () {

        return axios.get("http://localhost:2000/" , {
          params: {
            foo: 'SELECT * FROM eur_usd WHERE primary_key = 2;'
          }
        })
        .then(function (response) {
            console.log(response.data.ticket);
            return response.data.ticket;
        })
        .catch(function (error) {
          console.log(error);
        });

    },

  },

}

</script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>






我需要以某种方式从查询中获取值。

javascript - 如何从Axios请求中获取值(value)?-LMLPHP
附言当前解决方案的结果可以在屏幕上看到。
从顶部可以看到返回的值。 (对象而不是数据)
从控制台日志的底部-我们看到答案本身正在起作用(没有错误。)
该数据需要在标签内显示。

最佳答案

执行此操作的标准方法是在模板中显示data属性。

<span class="symbolTicket">
  {{ ticket }}
</span>


data () {
  return {
    ticket: null
  }
}


然后从created钩子加载值:

created () {
  this.getTicket()
},

methods: {
  getTicket () {
    return axios.get("http://localhost:2000/" , {
      params: {
        foo: 'SELECT * FROM eur_usd WHERE primary_key = 2;'
      }
    })
    .then(response => {
      const ticket = response.data.ticket;

      // Update the data property
      this.ticket = ticket;

      console.log(ticket);
      return ticket;
    })
    .catch(function (error) {
      console.log(error);
    });
  }
}


方法getTicket向服务器发出异步请求,因此它无法直接返回ticket。它所能返回的就是相应的承诺。模板同步需要该值,因此无法依赖getTicket的返回值。

您可能还需要处理ticketnull的情况。在初始呈现期间,对服务器的请求不会完成,因此ticket仍为null

如果您对使用async / await感到满意,则可以简化getTicket方法,但不会改变上述总体流程。您仍然需要一个单独的data属性来保存结果。

09-18 20:44