11

为什么这在流星中不起作用?https://github.com/wycats/handlebars.js/issues/250

4

3 回答 3

9

它尚未在流星版本的车把中实现;@index正确渲染的反应性有一个微妙之处。你可以在这里阅读更多关于它的信息:https ://github.com/meteor/meteor/issues/489#issuecomment-11270564

于 2012-12-14T00:12:18.943 回答
9

这对我来说绝对是一种挫败感。与此同时,我制作了一个车把助手来将任何内容解析为命名的“键”和“值”对象:

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>
于 2013-10-02T06:31:00.157 回答
6

让它工作的另一种方法是使用带有地图光标功能的标准 Meteor 模板助手。

下面是一个示例,展示了在将 each 与集合一起使用时如何返回索引:

index.html:

<template name="print_collection_indices">
  {{#each items}}
    index: {{ this.index }}
  {{/each}}

index.js:

Items = new Meteor.Collection('items');

Template.print_collection_indices.items = function() {
  var items = Items.find().map(function(doc, index, cursor) {
    var i = _.extend(doc, {index: index});
    return i;
  });
  return items;
};
于 2013-12-28T08:17:34.213 回答