С помощью простого кодаПочему используется {{@ ...}} В случае ошибок шаблона Meteor?
{{#each array}}
{{@index}}: {{this}}
{{/each}}
появляется поток ошибок. То же самое происходит с {{@key}}
для объектов. Почему это происходит?
С помощью простого кодаПочему используется {{@ ...}} В случае ошибок шаблона Meteor?
{{#each array}}
{{@index}}: {{this}}
{{/each}}
появляется поток ошибок. То же самое происходит с {{@key}}
для объектов. Почему это происходит?
Глядя на источник (в https://github.com/meteor/meteor/blob/master/packages/handlebars/parse.js): Это не похоже на то, что набор выражений поддерживается версией Handlebars, упакованной с помощью Meteor.
Это определенно расстройство для меня. В то же время я сделал Рули помощника для разбора что-либо в имени «ключ» и «значение» объектов:
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)
Более сжатой реализацией будет использование '_.map' вместо' _.each': 'return _.map (context, function (value, key) {return {key: key, value: value };}); ' – sbking
Однако обратите внимание, что ваше обходное решение значительно влияет на производительность рендеринга приложения. Всякий раз, когда какой-либо отдельный элемент изменяется, каждый элемент будет повторно отображаться. Это может быть проблемой для больших коллекций. – sbking
А, да, это определенно хороший момент. Я думаю, что Meteor будет рассматривать это в более поздних версиях. Их новая демонстрация пользовательского интерфейса описала намного лучшее управление разметкой. Надеюсь, он будет включать в себя списки ключей/значений. –
Спасибо, не знал этого. – Euphe
Ссылка не работает. пожалуйста, обновите :) –