2016-04-04 5 views
1

ich diese Daten in Mongo eingefügt habenListe aller Schlüssel und Werte von blaze Objekt

db.orders.insert({ _id: ObjectId().str, name: "admin", status: "online",catalog : [ 
     { 
      "objectid" : ObjectId().str, 
      "message" : "sold", 
      "status" : "open" 
     } 
    ]}) 

und ich bin den Zugriff auf die Daten auf diese Weise

<template name="Listed"> 
    <div class="row"> 

    {{#each list}} 
    <article class="post"> 
    <a href="{{pathFor route='edit'}}"><h3>{{_id}}</h3></a> 
    <a href="{{pathFor route='edit'}}"><h3>{{name}}</h3></a> 
    <br> 
    <a href="{{pathFor route='create'}}"><h3>{{status}}</h3></a> 
    <br> 
    {{#each catalog }} 
    <a href="{{pathFor route='create'}}"><h3></h3></a> 
    <a href="{{pathFor route='create'}}"><h3>{{status}}</h3></a> 
    {{/each}} 
    <div class="well"></div> 
    <br/> 

    </article> 
    <br/><br/> 
    {{/each}} 
    </div> 
</template> 

Ich bin daran interessiert, den Schlüssel/Wert-Paar in dem Wissen, des catalog Objekts. Der Grund dafür liegt darin, dass ich die Felder catalog nicht kenne. Dazu registriert ich einen Helfer

Template.registerHelper("keyval",function(object){ 
    return _.map(object, function(value, key) { 
    return { 
     key: key, 
     value: value 
    }; 
    }); 
}); 

und verwendet es auf diese Weise

<template name="Listed"> 
    <div class="row"> 

    {{#each list}} 
     <article class="post"> 
     <a href="{{pathFor route='edit'}}"><h3>{{_id}}</h3></a> 
     <a href="{{pathFor route='edit'}}"><h3>{{name}}</h3></a> 
     <br> 
     <a href="{{pathFor route='create'}}"><h3>{{status}}</h3></a> 
     <br> 
     {{#each keyval catalog }} 
     <a href="{{pathFor route='create'}}"><h3></h3></a> 
     <a href="{{pathFor route='create'}}"><h3>{{key}}</h3></a> 
     <a href="{{pathFor route='create'}}"><h3>{{value}}</h3></a> 
     {{/each}} 
    <div class="well"></div> 
    <br/> 

    </article> 
    <br/><br/> 
    {{/each}} 
    </div> 
</template> 

Wenn ich versuche, auf den Schlüssel zuzugreifen wie {{key}} i 0,1,2 ... und {{value}} gibt ein Objekt .

Das ist nicht was ich suche. Wie kann ich die Schlüsselwertpaare korrekt anzeigen?

+0

Das Problem ist, dass Sie eine Reihe von 'catalog' Einzelteile haben, und für jeden Sie ein weiteres Array produzieren, so dass Sie mit einem Array von Arrays am Ende anstelle eines einzigen flache Anordnung. Ich bin unklar, ob die Ausgabe die ursprüngliche Struktur darstellen oder nur eine flache Liste sein soll. –

+0

Ja, es sollte die ursprüngliche Struktur darstellen. –

Antwort

2

Sie erstellen ein Array von Arrays (jedes Katalogelement wird einer Liste von Schlüssel/Wert-Paaren zugeordnet). Eine Lösung besteht darin, über alle Katalogelemente zu iterieren und dann keyval darauf anzurufen. Die Struktur würde wie folgt aussehen:

{{#each item in catalog}} 
    {{#each keyval item}} 
    <a href="{{pathFor route='create'}}"><h3>{{key}}</h3></a> 
    <a href="{{pathFor route='create'}}"><h3>{{value}}</h3></a> 
    {{/each}} 
{{/each}} 
Verwandte Themen