2016-09-01 1 views
0

sagen, dass ich die folgende JSON haben:Dynamisch jeder Iterator in Lenker teilweise?

category: { 
    a_items: [], 
    b_items: [] 
} 

Und ich habe einen Lenker Teil:

{{#each items}} 
    {{stuff}} 
{{/each}} 

Was ich tun möchte, ist die teilweise zu erklären, welche Array iterieren:

{{> showItems items=a_items}} 

Die Teil wird jedoch versuchen, über category.items zu iterieren, die nicht existiert.

So ist das möglich, ohne einen Helper erstellen zu müssen?

p.s. This answer würde nicht vorschlagen, aber ich kann nicht herausfinden, was mein Helfer tun würde. Ich möchte nicht den gesamten {{stuff}} Teil des Partiellen in einen Helfer verschieben.

+0

Ich denke, das sollte, ohne dass gut funktionieren für ein Helfer. Der einzige Grund, warum ich für Sie Probleme habe, ist, dass Ihr Teilanruf vielleicht '{{showItems items = category.a_items}}' 'lauten sollte? Ich habe eine funktionierende [Geige] erstellt (https://jsfiddle.net/76484/u3ftd22k/). – 76484

Antwort

0

Hier ist die Lösung, die ich gefunden habe. Erstellen Sie einen Helfer:

Handlebars.registerHelper('returnKeyValue', function(obj, key, options) { 
    return options.fn(obj[key]); 
}); 

Führen Sie den Kontext an den Helfer:

{{#returnKeyValue this items}} 
    {{> partialThatIteratesOverItems}} 
{{/returnKeyValue}} 

Was ich mit zwei verschiedenen Kontexten nennen:

{{> partial items='a_items'}} 
{{> partial items='b_items'}}