2016-04-04 2 views
1

Я вставил эти данные в МонгоСписок всех ключи и значение Blaze объекта

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

, и я доступ к данным этому пути

<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> 

Я заинтересован в знании пары ключей/значений объекта catalog.

Причина в том, что, я не знаю полей catalog имеет. Для этого я зарегистрировал помощник

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

и использовать его таким образом

<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> 

Когда я пытаюсь получить доступ к ключу, как {{key}} я получить 0,1,2 ... и {{value}} дает объект ,

Это не то, что ищем. Как я могу правильно отобразить пары значений ключа ?.

+0

Проблема заключается в вас есть массив 'пунктов catalog', и для каждого из них вы производите еще один массив, так что вы в конечном итоге с массивом массивов вместо одного плоский массив. Я не понимаю, должен ли вывод представлять исходную структуру или просто быть плоским списком. –

+0

Да, он должен представлять собой исходную структуру. –

ответ

2

Вы производите массив массивов (каждый элемент каталога отображает список пар ключ/значение). Одним из решений является итерация по каждому из элементов каталога, а затем вызов keyval. Структура будет выглядеть примерно так:

{{#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}} 
Смежные вопросы