如何从接收到的数据中分配数据? 我的代码如下。 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);
});
}})
答案 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在顶层(父函数或脚本文件)中,但请注意是否强制执行“严格模式”,因为这将改变作用域/继承的行为。