2015-05-14 4 views
7

У меня есть JSON от помощникаКак распечатать ключ и значения в шаблоне Meteor?

{ 
    "Name": "abc", 
    "Age": 24, 
    "Address" { 
     "street" : "xyz street", 
     "city" : "zyz city", 
     "country" : "XY" 
     } 
} 

Я хочу, чтобы напечатать адрес с ключом и значением

<template name="User"> 
{{#with user}} 
Name : {{Name}} 
Age : {{Age}} 
    {{#each Address}} 
     {{key}} : {{value}} //Here is my question 
    {{/each}} 
{{/with}} 
</template> 

Как напечатать ключ и значение в шаблоне?

ответ

6

Помощник блока {{#each}} принимает только аргументы курсоров и массивов.

Вы можете переопределить хелпер Address, чтобы он возвращал массив вместо объекта.

Template.User.helpers({ 
    Address: function(){ 
    return _.map(this.Address, function(value, key){ 
     return { 
     key: key, 
     value: value 
     }; 
    }); 
    } 
}); 

Вы можете определить эту функцию полезности в качестве помощника шаблона:

JS

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

HTML

<template name="User"> 
    <ul> 
    {{#each objectToPairs Address}} 
     <li>{{key}} - {{value}}</li> 
    {{/each}} 
    </ul> 
</template> 
1

изменения должны быть сделаны в JS

var AddressSet=CollectionName.find({ }); 

изменения должны быть сделаны в HTML

 {{#each AddressSet}} 
     {{#each Address}} 
       {{this.street}} 
       {{this.city}} 
       {{this.country}} 
     {{/each}} 

     {{/each}} 
+0

Я хочу напечатать ключ и как значение. Ваш код имеет только значения. В любом случае, спасибо. @saimeunt Поймите мой вопрос правильно. –

+0

Он не отвечает на вопрос, ключи должны быть неизвестны. –