首页 新闻 会员 周边 捐助

vue单组件页面无法把axios获取的值传输过去

0
悬赏园豆:30 [已解决问题] 解决于 2018-02-01 10:33

我直接上代码吧,是能获取到后台的值的,但是每次都先执行

data() {
return {
message: message
}
},
我从后台获取的值根本就放不进去啊,网上的例子都是传的固定的值
template>
  <div id="indexTop">

        <div>{{message}}</div>
  </div>
</template>

<script>
  import Vue from 'vue'
  import axios from 'axios'

  var message = {}

  export default {
    name: "indexTop",
    created: function () {
      this.$nextTick(function () {
        axios.get('http://localhost:66/studio/banner')
          .then(function (res) {
            console.log(res.data);
            message = res.data.length
          })
          .catch(function (err) {
            console.log(err);
          })
      });
    },
    data() {
      return {
        message: message
      }
    },
  }


</script>
花生喂龙的主页 花生喂龙 | 初学一级 | 园豆:10
提问于:2018-01-31 19:14
< >
分享
最佳答案
0

在main.js中的use,添加组件等等都放在new Vue的上面,mounted中可以不用this.$nextTick,延迟体验有些差;

收获园豆:30
悟行 | 专家六级 |园豆:12559 | 2018-02-01 10:29
其他回答(1)
0
<template>
  <div id="indexTop">

        <div>{{message}}</div>
  </div>
</template>

<script>
  import Vue from 'vue'
  import axios from 'axios'

  var message = {}

  export default {
    name: "indexTop",
    data() {
      return {
        message: message
      }
    },
    mounted() {
      this.$nextTick(function () {
        var self = this;
        axios.get('http://localhost:66/studio/banner')
          .then(function (res) {
            console.log(res.data);
            self.message = res.data.length
          })
          .catch(function (err) {
            console.log(err);
          })
      });
    }
  }


</script>

我自己解决了,new vue和export default写法不一样啊,想死

花生喂龙 | 园豆:10 (初学一级) | 2018-01-31 19:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册