LENKER Vorlage nicht in der Lage, JSON von Rückgrat
LENKER nicht in der Lage ist zu Lesen das JSON-Objekt, sende ich es als Kontext.
Hier ist die Funktion, die den Aufruf der Mustache-Vorlage und gibt es den Kontext:
render: function() {
var source = $("#round").html();
var template = Handlebars.compile(source);
var context = JSON.stringify(this.model);
console.log(context);
var html = template(context);
$(this.el).html(html);
return this;
},
Hier ist die JSON-Objekt, das ich leite es:
{"result":0,"friend1":{"firstName":"Ape","lastName":"Head","fbID":329018,"kScore":99,"profilePic":""},"friend2":{"firstName":"Ape","lastName":"Hands","fbID":32,"kScore":70,"profilePic":""}}
Hier ist der LENKER Vorlage:
<script id="round" type="text/x-handlebars-template">
{{#with friend1}}
<h2>{{firstName}} {{lastName}}</h2>
{{/with}}
</script>
Bekomme ich die folgende Fehlermeldung:
Uncaught TypeError: Cannot read property 'firstName' of undefined
InformationsquelleAutor egidra | 2011-08-16
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
ersetzen mit dieser Funktion:
mit:
template
ist, sollte ein javascript-Objekt, in diesem Fall. JSON.stringify gibt eine string-Darstellung von JSON-Objekt nicht in ein javascript-Objekt. Aber was Sie wirklich wollen, sind die Modell-Attribute. So können Sie den Zugriff auf diese durch toJSON-oder JSON.stringify(dies.Modell), aber dann müssen Sie wandeln diese wieder in ein Javascript-Objekt.Dies könnte scheint komisch, aber versuchen:
JSON.parse(JSON.stringify(this.model))
Ah, das hat funktioniert!
Ich werde mein edit beantworten und zu erklären.
Okay, ich werde überprüfen Sie nach dem Bearbeiten (weiß nicht, ob die überprüfung Blöcke, die Sie Bearbeiten können, also werde ich warten.)
InformationsquelleAutor Joe
Verwenden Sie einfach
.toJSON()
in der Vorlage nennen, verwandeln die Modell-Attribute, um ein json-Objekt erwartet LENKER:InformationsquelleAutor Greg Funtusov
Versuchen:
Den
attributes
Eigenschaft des Backbone-model-Objekt enthält die JS-Objekt-Darstellung der Daten. Es ist nicht eine gute übung, um direkt auf ihn zugreifen, aber in diesem Fall vielleicht die einfachste Sache, anstatt zu versuchen, hin-und Rückfahrkarte die Daten über JSON.InformationsquelleAutor Dan Ray
Ich würde Zustimmen, mit Dan ' s Antwort für den schnellsten Weg, dies zu tun.
Im Falle einer Liste, wo Sie müssen möglicherweise die id zum erfassen von Klicks, können Sie das auch
InformationsquelleAutor Vincent Cheong