-jade
Der Versuch, ein json
Objekt mit nested object
, Aber each prod in order.productOrder
nicht prod.name
yeild ...Jade verschachteltes Objekt in json wird angezeigt, nicht
JSON
{
"id": "57bf5800473ffcd9bec12845",
"userId": "57988bf249c8791e403ea6f0",
"paymentTrans": {
"trandId": 6720391068199,
"timestampApproved": "Sat Aug 27 2016 19:48:29 GMT+0300 (IDT)",
"timestampSent": "Sat Aug 27 2016 19:48:29 GMT+0300 (IDT)",
"serviceName": "PayPal"
},
"totalPerOrder": 160,
"productOrder": [
{
"total": 40,
"price": 4,
"quantity": 10,
"name": "Banana",
"sku": "BAN"
},
{
"total": 120,
"price": 10,
"quantity": 12,
"name": "Fig",
"sku": "FIG"
}
]
}
Jade
tbody
each order in orders
tr
td.tdRight= moment(order.paymentTrans.timestampSent).format('DD.MM.YYY')
td.tdCenter.price= order.totalPerOrder
td.tdLeft= order.paymentTrans.serviceName
td.tdCenter
button.btn.product.btn-primary(type='button', ng-click='showDetails()')
each prod in order.productOrder
tr.show.hidden
td.tdRight= prod.name
td.tdCenter= prod.price
td.tdCenter= prod.quantity
td.tdLeft= prod.total
br
Chrom
> 20| td.tdRight= prod.name
21| td.tdCenter= prod.price
22| td.tdCenter= prod.quantity
23| td.tdLeft= prod.total
Cannot read property 'name' of undefined
den Code hier jade-demo versucht und es worx ....
Jade Eingang
doctype html
html(lang="en")
head
title= pageTitle
script(type='text/javascript').
if (foo) {
bar(1 + 5)
}
block content
.page-header
h3 ההזמנות שלי
table.table.table-bordered
thead
tr פירוט הזמנות
tbody
each order in orders
tr
td.tdRight= order.paymentTrans.timestampSent
td.tdCenter.price= order.totalPerOrder
td.tdLeft= order.paymentTrans.serviceName
td.tdCenter
button.btn.product.btn-primary(type='button', ng-click='showDetails()')
for prod in order.productOrder
tr.show.hidden
td.tdRight= prod.name
td.tdCenter= prod.price
td.tdCenter= prod.quantity
td.tdLeft= prod.total
br
Einheimische
{
orders: [
{
"id": "57bf5800473ffcd9bec12845",
"userId": "57988bf249c8791e403ea6f0",
"paymentTrans": {
"trandId": 6720391068199,
"timestampApproved": "Sat Aug 27 2016 19:48:29 GMT+0300 (IDT)",
"timestampSent": "Sat Aug 27 2016 19:48:29 GMT+0300 (IDT)",
"serviceName": "PayPal"
},
"totalPerOrder": 160,
"productOrder": [
{
"total": 40,
"price": 4,
"quantity": 10,
"name": "Banana",
"sku": "BAN"
},
{
"total": 120,
"price": 10,
"quantity": 12,
"name": "Fig",
"sku": "FIG"
}
]
},
{
"id": "57bf5800473ffcd9bec12845",
"userId": "57988bf249c8791e403ea6f0",
"paymentTrans": {
"trandId": 6720391068199,
"timestampApproved": "Sat Aug 27 2016 19:48:29 GMT+0300 (IDT)",
"timestampSent": "Sat Aug 27 2016 19:48:29 GMT+0300 (IDT)",
"serviceName": "PayPal"
},
"totalPerOrder": 160,
"productOrder": [
{
"total": 40,
"price": 4,
"quantity": 10,
"name": "Banana",
"sku": "BAN"
},
{
"total": 120,
"price": 10,
"quantity": 12,
"name": "Fig",
"sku": "FIG"
}
]
}
]
}
UPDATE 1
td.tdCenter= order.productOrder
gibt:
[ { sku: 'APL', name: 'Apple', quantity: 2, price: 12, total: 24 }, { sku: 'AVC', name: 'Avocado', quantity: 2, price: 16, total: 32 } ]
in td
.
mongodb
"productOrder" : [ { "sku" : "APL" , "name" : "Apple" , "quantity" : 2 , "price" : 12 , "total" : 24} , { "sku" : "AVC" , "name" : "Avocado" , "quantity" : 2 , "price" : 16 , "total" : 32}]
WebStorm Momentaufnahme der Konsole und MongoDB
Bestellungen Screenshot mit uniteratable order.productOrder
Daten habe ich nur noch eine td
Linie so: td.tdCenter= order.productOrder
UPDATE 2 - order.js-Controller
exports.getOrders = (req, res) => {
Order.find()
.populate({
path: 'orders',
match: { _id: req.user._id }
})
.exec(function (err, orders) {
orders.forEach(function(elem){
console.log("ELEM = " + elem.productOrder);
console.log("ELEM = " + typeof elem.productOrder);
});
res.render('account/orders', {
title: 'ניהול ההזמנות שלי',
angularApp: 'storeApp',
orders: orders
});
});
};
Console Schnappschuss order.js
console.log("ELEM = " + elem.productOrder);
Wie ich dieses Problem beheben kann ??
Die JSON Sie ist aus dem Array anders zeigt, die in der "UPDATE" gezeigt. Scheitert Ihr Code tatsächlich mit dem JSON, den Sie posten ("Banana" und "Fig")? – robertklep
@robertklep, nur verschiedene Mockup-Daten, die ich benutze ... der Code versagt, und mehr: 'jeder prod in order.ProductOrder.length? order.productOrder: ['empty'] 'gibt' empty' zurück ... – Jadeye
Ich kann das Problem nicht reproduzieren, es funktioniert gut für mich. Siehe [diese Beschreibung] (https://gist.github.com/robertklep/b7bda8efc7249d44fd839c914a32165e) für die Ausgabe, die generiert wird. – robertklep