2012-04-13 8 views
0

Ich versuche Lenker in meinem Projekt zu verwenden, bekomme aber Probleme damit, die Attribute jedes Objekts auszugeben.Wie behebe ich Probleme mit Schnurrbartblöcken?

Daten

people: [{"name":"Moe"}, {"name":"Larry"}, {"name":"Curly"}] 

Vorlage

{{#people}} Name: {{name}} <br/>{{/people}} 

Ausgabe

Name: 
Name: 
Name: 

Es liest offensichtlich die Liste o f Leute, weil es dreimal ausgibt. aber ich weiß nicht, warum es den einfachen Weg zu name nicht sehen kann.

  • Wenn ich {{this.name}} setze, rendert es auch ein Leerzeichen.
  • Wenn ich {{this}} setze, sehe ich [object Object].

Wie kann ich dich einzuloggen oder diese Aufgabe untersuchen, damit ich weiß, warum das Name Attribut wird nicht wiedergegeben werden?

Antwort

0

versuchen {{#each people}} Name: {{name}} <br/>{{/each}}

+0

Leider habe ich das mit dem gleichen Ergebnis versucht. Trotzdem danke. –

+0

Wie leiten Sie die Daten in die Vorlage ein? Zum Beispiel wird 'template (people)' nicht funktionieren, aber 'template ({people: people})' wird wahrscheinlich –

+0

Ich benutze den letzteren Weg. –

0

Es muss etwas mit dem Rest des Codes falsch sein, in dieser Geige funktioniert es:

http://jsfiddle.net/hDE3P/

var context = { 
    people : [{"name":"Moe"}, {"name":"Larry"}, {"name":"Curly"}] 
} 
var source = $("#entry").text(); 
var template = Handlebars.compile(source); 
$("#out").html(template(context)); 

mit diesem html

<script id="entry" type="text/x-handlebars-template"> 
    {{#people}} Name: {{name}} <br/>{{/people}} 
</script> 

output: 
<div id="out"></div> 

Try diese Dinge:

  • überprüfen Sie Ihr Datenmodell im Debugger (Firebug oder sth.)
  • überprüfen Sie die Vorlage korrekt ist (manchmal Browser es, wenn nicht in Script-Tags zu zerstören)
  • Debug in Lenker "jeder" Handler zu sehen, was die Kontext sieht aus wie

Hoffe das hilft.

Verwandte Themen