Handlebars.js: Globaler Kontext in einer Schleife nicht verfügbar?

Erstellt am 19. Feb. 2012  ·  3Kommentare  ·  Quelle: handlebars-lang/handlebars.js

Wenn ich folgenden Kontext habe:

{{model: {username: 'sontek'}, timezones: ['a', 'b', 'c']} 

und ich mache:

{{#each timezones }}
     {{model.username}}
{{/each}}

Modell existiert nicht, daher kann ich nicht auf den Benutzernamen zugreifen.

Hilfreichster Kommentar

Es steht in den Dokumenten unter "Pfade"

Verschachtelte Lenkerpfade können auch ../-Segmente enthalten, die ihre Pfade anhand eines übergeordneten Kontexts auswerten.

<h1>Comments</h1>

<div id="comments">
  {{#each comments}}
  <h2><a href="/posts/{{../permalink}}#{{id}}">{{title}}</a></h2>
  <div>{{body}}</div>
  {{/each}}
</div>

Auch wenn der Link im Kontext eines Kommentars gedruckt wird, kann er dennoch zum Hauptkontext (dem Beitrag) zurückkehren, um seinen Permalink abzurufen.
Das ../ verweist auf den Bereich der übergeordneten Vorlage, nicht auf eine Ebene höher im Kontext. Dies liegt daran, dass Blockhelfer einen Block mit jedem Kontext aufrufen können, sodass der Begriff "eine Ebene höher" nicht besonders aussagekräftig ist, außer als Verweis auf den Gültigkeitsbereich der übergeordneten Vorlage.

Alle 3 Kommentare

Ich habe festgestellt, dass ich ../model.username verwenden kann, kann aber keine Dokumente dazu finden, ich habe es gerade in einigen Fehlerberichten gefunden .... Ist das irgendwo dokumentiert?

Es steht in den Dokumenten unter "Pfade"

Verschachtelte Lenkerpfade können auch ../-Segmente enthalten, die ihre Pfade anhand eines übergeordneten Kontexts auswerten.

<h1>Comments</h1>

<div id="comments">
  {{#each comments}}
  <h2><a href="/posts/{{../permalink}}#{{id}}">{{title}}</a></h2>
  <div>{{body}}</div>
  {{/each}}
</div>

Auch wenn der Link im Kontext eines Kommentars gedruckt wird, kann er dennoch zum Hauptkontext (dem Beitrag) zurückkehren, um seinen Permalink abzurufen.
Das ../ verweist auf den Bereich der übergeordneten Vorlage, nicht auf eine Ebene höher im Kontext. Dies liegt daran, dass Blockhelfer einen Block mit jedem Kontext aufrufen können, sodass der Begriff "eine Ebene höher" nicht besonders aussagekräftig ist, außer als Verweis auf den Gültigkeitsbereich der übergeordneten Vorlage.

Vielen Dank @sontek und @spadgos

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen