【问题标题】:Weird behaviour of #each for an array with zero#each 对于零数组的奇怪行为
【发布时间】:2016-02-21 23:20:32
【问题描述】:

我正在使用流星 (1.2) 并尝试使用 {{#each}} 来迭代数组。 该数组由助手生成。 我使用这样的东西(当然是为了调试而简化的)

{{numbers}}<br>
{{#each numbers}}
   {{this}}<br>
{{/each}}

一切都很好,除非我得到一个像 [100, 100, 100, 100, 0] 这样的数组。 在这种情况下,我得到了这个

100,100,100,100,0

100
0
100
100
100

这不是我想看到的顺序。 没有零的数组显示没有问题。

谢谢!

【问题讨论】:

    标签: javascript meteor spacebars


    【解决方案1】:

    对我来说,您在 Meteor 1.2.1 上的代码没有任何问题。 您可以使用@index 获取当前迭代的索引并使用这样的帮助器访问元素,

    在您的 HTML 中,

    {{numbers}}<br>
    {{#each numbers}}
        {{@index}} - {{getNumber @index}}<br>
    {{/each}}
    

    在你的 JS 中,

    getNumber: function (index) {
      return numbers[index];
    } 
    

    【讨论】:

    • 是的。我正在使用字典,但这是一个拐杖,而不是解决方案。
    • > 对我来说,您的代码没有任何问题 - 最奇怪的部分是我在几个页面中使用了这个模板,并且其中一些工作没有问题。
    • 由于模板在某些模板中工作正常而在其他模板中无法正常工作,因此很可能是由 Meteor 引起的。检查可能更改了导致问题的数组/字典的其他帮助程序。
    • 它只是这个模板的一个助手,正如我所说的 {{numbers}} 显示了正确的数组顺序,只有 #each 存在问题。看起来像是渲染问题。
    • 似乎是一个真正的错误,因为{{numbers}} 的顺序正确,而each 的打印顺序不同。如果您还没有这样做,您可能希望将错误发布到 github.com/meteor/meteor/issues 并提及所有信息,例如流星版本、操作系统版本和其他详细信息。您也许可以直接从流星人那里获得帮助。
    猜你喜欢
    • 2014-12-25
    • 2019-07-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2012-02-23
    相关资源
    最近更新 更多