如何在VueJS中从接收到的数据中分配数据?

时间:2019-03-07 20:53:03

标签: javascript vue.js

如何从接收到的数据中分配数据? 我的代码如下。 axios运行良好。我可以从server获取response.data。我试图将数据分配给imglists变量。但它没有分配。我怎么了有什么不对? 请帮帮我。

var app = new Vue({
  el: '#app',  
  data: {      
    imglists: [],  
  },  
  created(){     
      axios.post('https://test.com/hello-lambda')
   .then(function (response) {        
     this.imglists = response.data;
   }).catch(function (error) {    
    console.log(error);  
   });  
}})

2 个答案:

答案 0 :(得分:1)

Year: year1 - Location: Asia - Good: 1 - Better: 0 - Best: 0 Year: year2 - Location: Asia - Good: 0 - Better: 2 - Best: 0 Year: year3 - Location: Asia - Good: 0 - Better: 1 - Best: 0 Year: year1 - Location: Africa - Good: 0 - Better: 0 - Best: 1 以上的示例代码中,已绑定到创建的函数。要将其绑定到对象上下文,您需要一个不绑定this的函数。使用ES6(ES2015)解决绑定问题。

使用ES6语法:

this

答案 1 :(得分:1)

您对的引用仅限于其内部的功能,因此您需要创建一个外部引用。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this

由于此用例是异步调用,因此在 imagelists 中更改数据时,还应该将数据作为返回对象来创建反应性对象,以触发重新渲染(nextTick)。

https://vuejs.org/v2/guide/reactivity.html#Async-Update-Queue

var app = new Vue({

  el: '#app',

  data: () => ({
    imglists: []
  }),

  created(){

    let self = this;

    axios.post('https://test.com/hello-lambda').then(response => {  

        self.imglists = response.data;

   }).catch(error => {    
     console.log(error);  
   });  

}})

变种 self 和函数 then()加上其自身的内容,其作用范围为函数 created(),允许子函数访问声明的var在顶层(父函数或脚本文件)中,但请注意是否强制执行“严格模式”,因为这将改变作用域/继承的行为。