Jade kann Nicht Lesen-Eigenschaft 'Länge' von undefined in jeder Schleife
Ich habe diesen code in meinen controller abrufen eines Objekts aus mongo und senden Sie es an den client:
index: function(req, res){
List.find({user:req.session.user.id}).exec(function foundLists(error, foundLists) {
if(error) {
return res.json({error:error});
} else {
return res.view({ title:'Lists',lists:foundLists });
}
});
}
In meiner Sicht ich Folgendes tun:
extends ../layout
block content
.container
p #{lists}
Rendert:[object Object],[object Object]
Wenn ich p= JSON.stringify(lists)
Macht es:
[{"user":"546109c0d640523d1b838a32","name":"third","createdAt":"2014-11-11T19:39:36.966Z","updatedAt":"2014-11-11T19:39:36.966Z","id":"546265f83e856b642e3b3fed"},{"user":"546109c0d640523d1b838a32","name":"forth","createdAt":"2014-11-11T19:42:09.268Z","updatedAt":"2014-11-11T19:42:09.268Z","id":"546266913e856b642e3b3fef"}]
Ich versuche zu erreichen:
#lists
each list in lists
p #{list}
Aber ich bekomme diese Fehlermeldung:
Cannot read property 'length' of undefined
Bin ich mit Segel-und Jade-1.7.0
- Mich verrückt zu 🙁 Was hast du gesehen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie ein array von Objekten, so dass, wenn Sie tun
each list in lists
dannlist
ist ein Objekt. Ich gehe davon aus Jade will einen string. Wenn Siep #{list.name}
oder etwas ähnliches, das sollte funktionieren.Wenn Sie wollen alles zeigen, was Sie können versuchen, Ihre Verschachtelung von Schleifen wie
Dieser Fehler kann dann auftreten, wenn mindestens eines der Elemente in den Listen nicht über eine
list
Eigenschaft. Schützen Sie diese mit einer if-Anweisung: