![](/img/trans.png)
[英]How do I create a methods that map my JSON object to set properties of data object in vue.js?
[英]Vue JS data object not available within my methods
我对Vue JS及其工作方式感到有些困惑。 我有以下组成部分:
Vue.component('careers', {
template: `
<div class="context">
<div v-for="career in careerData">
<h1>{{ career.fields.jobTitle }}</h1>
{{ career.fields.jobDescription }}
</div>
</div>`,
data: function() {
return {
careerData: []
}
},
created: function() {
this.fetchData();
},
methods: {
fetchData: function() {
client.getEntries()
.then(entries => {
this.careerData = entries.items;
});
for (var i = 0, len = this.careerData.length; i < len; i++) {
console.log('Success');
}
}
}
});
then()
函数中的这一行将Array分配给我的数据对象careerData
。
this.careerData = entries.items
当我尝试运行此for
:
for (var i = 0, len = this.careerData.length; i < len; i++) {
console.log('Success');
}
它不起作用,因为this.careerData.length
似乎没有数据,它只是一个空数组,但是当我尝试在HTML中运行组件时,数据会完美地显示在页面上。
任何想法我可能在这里出错,就好像我无法在任何方法中使用this.careerData
。 知道为什么即使我已经在fetchData
方法中分配了该数据也无法访问该数据吗? 数据设法完美地到达前端很奇怪,但是我似乎无法在方法中的其他任何地方使用它。
谢谢,尼克
您正在then
外部运行for循环,并且由于它是一个异步运算符,因此在运行for循环时数组仍为空。
将其放在then
函数中:
fetchData: function() {
client.getEntries()
.then(entries => {
this.careerData = entries.items;
for (var i = 0, len = this.careerData.length; i < len; i++) {
console.log('Success');
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.