2013-06-25 1 views

ответ

5

Это определенно расстройство для меня. В то же время я сделал Рули помощника для разбора что-либо в имени «ключ» и «значение» объектов:

Handlebars.registerHelper('key_value', function(context, options) { 
    var result = []; 
    _.each(context, function(value, key, list){ 
    result.push({key:key, value:value}); 
    }) 
    return result; 
}); 

Это будет использоваться с #each оператора, как:

<dl class="attributes"> 
    {{#each key_value attributes}} 
    <dt>{{key}}</dt><dd>{{value}}</dd> 
    {{/each}} 
</dl> 

(я также просто отправил это на соответствующий Using @index in meteor #each iterator doesn't work)

+0

Более сжатой реализацией будет использование '_.map' вместо' _.each': 'return _.map (context, function (value, key) {return {key: key, value: value };}); ' – sbking

+0

Однако обратите внимание, что ваше обходное решение значительно влияет на производительность рендеринга приложения. Всякий раз, когда какой-либо отдельный элемент изменяется, каждый элемент будет повторно отображаться. Это может быть проблемой для больших коллекций. – sbking

+0

А, да, это определенно хороший момент. Я думаю, что Meteor будет рассматривать это в более поздних версиях. Их новая демонстрация пользовательского интерфейса описала намного лучшее управление разметкой. Надеюсь, он будет включать в себя списки ключей/значений. –