我正在更新Point_Of_Sale中的 update_payment_summary 功能,此功能是 PaymentScreenWidget 的一部分。 现在我想从订单行中检索产品。
我试过
var order = this.pos.get('selectedOrder');
var orderlines = order.get('orderLines').models;
但是当我打印订单时,我得到 [object Object]
我是如何获得每个订单行的产品对象的?
答案 0 :(得分:2)
使用get_orderlines()
函数从特定订单中获取OrderLines。
var order = this.pos.get_order();
var products = _.map(order.get_orderlines(), function (line) {return line.product; });
console.log(products);
这里我使用Underscore.js来创建产品列表。
您可以使用产品列表迭代循环,
for(var i =0; i < products.length; i++)
console.log(products[i].id);
答案 1 :(得分:2)
是的,它有显示对象的原因。
OrderlineCollection定义。
module.OrderlineCollection = Backbone.Collection.extend({
model: module.Orderline,
});
订单模型中的订单行定义。
orderLines: new module.OrderlineCollection()
因此,如果您观察上面的代码,则表明订单行是 OrderlineCollection 模型的对象,当您从订单模型获得订单时,它会为您提供 OrderlineCollection 的对象。
为了识别内部对象中的内容,您可以迭代它,或者您可以从该对象打印键值。
alert(orderline.forEach(function(k,v){k + " => + v}));
或者你可以遍历订单。
for (line in orderline){
alert(line.product_id);
}