我使用vue-resource从获取数据firebase。基本上,当我通过下订单目录中的每个对象的循环,我匹配对象的用户id,找到用户目录下的对象,和我的本地阵列上保存为一个嵌套的对象(用户数据)以及检索到的订单对象。这里是我的代码:Vue.js - 即使对象存在也无法读取属性
//retrieve objects from orders
this.$http.get('https://nots-76611.firebaseio.com/Orders.json').then(function(data){
return data.json();
}).then(function(data){
var ordersArray = [];
for (let key in data){
data[key].id = key;
data[key].measurementsArray = Object.entries(data[key].measurements).sort();
//retrieve a specific user based on the userId of each orders object
this.$http.get('https://nots-76611.firebaseio.com/Users/' + data[key].userId + '.json').then(function(userdata){
return userdata.json();
}).then(function(userdata){
data[key].userData = userdata; //store the object
});
ordersArray.push(data[key]); //pass the object along the userData
}
this.orders = ordersArray;
console.log(this.orders);
});
结构在控制台中显示的对象是完全没有问题:
但是当我尝试,访问DOM中嵌套对象通过{{ order.userData.Address }}
:
<tr v-for="order in orders"
<dialog class="mdl-dialog" ref="userDialog">
<h4 class="mdl-dialog__title">Customer's Information</h4>
<div class="mdl-dialog__content">
{{ order.userData.Address }}
</div>
<div class="mdl-dialog__actions">
<button class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored mdl-js-ripple-effect" v-on:click="closeUser(ndx)">
OK
</button>
</div>
</dialog>
</tr>
它说Error in render function: "TypeError: Cannot read property 'Address' of undefined"
。我不明白,因为我可以很容易地检索测量对象(这也是一个嵌套的对象)中的属性
我在检索过程中搞砸了吗?或者在DOM渲染?
编辑: 我尝试使用{{ order }}
代替{{ order.userData.Address }}
,它似乎像userData
对象不是存储在每个orders
对象
而且,我发现了一些奇怪怎么userData
对象从不同的显示这是最初的父对象一起存储在那里measurements
对象:
只需尝试'{{order}}'而不是'{{order.userData.Address}}'并查看它的显示内容。 – Pradeepb
@Pradeepb我不能评论整个事情。但基本上,'userData'对象没有正确存储:( – Kaddy03