如何知道 'each' 在 meteor blaze 模板中完成或重新完成

how to know 'each' done or re done in meteor blaze template

each 运行 在 onRenderedTracker.autorun 之后(如果 foo 绑定订阅数据上下文)。

所以我可以t catch that每个工作都完成了。

如何知道 each 工作完成了,还是返工又完成了?

不知道吗?

下面是一个例子。

<template name="something">
  {{#each foo}}
    <bar>bar</bar>
  {{/each}}
</template>

我没有看到这个的实际用例,但您可以在此处使用不会向渲染输出添加任何内容的助手:

<template name="something">
  {{#each foo}}
    <bar>bar</bar>
    {{isDone @index foo}}
  {{/each}}
</template>
Template.something.helpers({
  isDone(index, arr) {
    if (index === arr.length - 1) {
      // this was the last element
      // to be rendered. do whatever
      // you want here
    }
  }
})

并不是说这不是真正的最佳实践,你应该想想为什么你需要知道这个?如果您的渲染有性能问题,您需要检查整个模板代码设计并在必要时进行重构。