我有一个代码
alert(JSON.stringify((this.shop.get('selectedOrder')).get('orderLines')));
结果看起来像这样
[{"cart_weight":0,"total_weight":1,"quantity":1,"list_price":1,"discount":0,"ean13":false,"product_image_small":false,"name":"Watermelon1","pos_categ_id":[1,"Others"],"taxes_id":[],"id":2}]
当我运行此代码时
alert((this.shop.get('selectedOrder')).get('orderLines').total_weight);
结果变为
undefined
任何出口都可以提供帮助吗?
我怀疑是导致问题[{}]的双重括号,但我是javascript的新手。无法解决问题。
谢谢。
答案 0 :(得分:0)
尝试alert((this.shop.get('selectedOrder').get('orderLines')[0].total_weight);
正如您所怀疑的那样,您的结果不是一个对象(在javascript术语中,{}
之间的任何数据),而是一个包含一个对象的数组([]
)。因此,您必须在访问属性之前访问数组的第一个元素。
答案 1 :(得分:0)
您选择的订单有多行。您需要选择从哪个行获取total_weight
。在这种情况下,只有一行 - 因此您可以使用[0]
来引用它。即:
alert((this.shop.get('selectedOrder')).get('orderLines')[0].total_weight);
例如,如果您需要计算整个订单的权重,则可以迭代所有订单行,并计算总和。