0

我的助手中有一个 ReactiveVar,它返回许多要放置在模板中的照片

photoCount:->
    Template.instance().rvPhotoCount.get()

img现在我需要用 photoCount 返回的 # 来响应式地填充我的 html 。我尝试使用{{each photoCount}}<img>但收到错误 {{#each}} currently only accepts arrays, cursors or falsey values.
我该如何解决这个问题?

4

2 回答 2

1

{{#each}}运算符用于迭代事物列表,例如,在您的情况下,是图像列表。

目前,您正在传递您拥有{{#each}}的图像数量。并且each不知道如何迭代单个数字!

如果要显示每个图像,则应each以数组或光标的形式传递图像列表本身:

{{#each images}}<img src={{src}} />{{/each}}

如果您只想显示图像数量,只需使用{{photoCount}}!

<p>There are {{photoCount}} images.</p>

如果你只想打印一些相同的“静态”img,你必须在你的助手中预处理数组:

  photoCount: function(){
    var countArr = [];
    var count = Template.instance().rvPhotoCount.get();
    for (var i=0; i<count; i++){
      countArr.push({});
    }
    return countArr;
  }

并使用{{#each}}它。遗憾的是,Meteor 在内置模板功能方面非常有限。

于 2015-05-15T12:10:09.197 回答
0

我决定将辅助输出更改为数组以进行解决。
为了填充数组,我使用 coffeescript 数组切片。

photoCount:->
    count=Template.instance().rvPhotoCount.get()
    array=[1..count]
于 2015-05-15T13:08:09.527 回答