Meteor.js:填充列表后的执行方法

时间:2014-06-26 10:02:49

标签: javascript meteor

我刚刚开始制作一个陨石包,它将组/标题添加到列表中 See demo here
Source code for demo is here

基本上,我想要做的是等待列表完全填充,然后调用一个设置标题/组等的方法。我现在的方法是在{{1}之后调用一个把手助手。 } loop,像这样:

{{#each}}

<ul> {{#each listItems }} {{> listItem }} {{/each}} </ul> {{ groupList }} 帮助程序在循环运行后执行我想要运行的代码(设置标题的代码)。

这感觉有点难看,而我认为我更喜欢的是对groupList循环的回调,它在完成迭代后被调用(并且重要如果循环中的项目发生变化) 有点类似于模板的rendered()方法我猜 (我当然已经尝试过render()方法,但是在循环运行之前就已经执行了。)

有这样的回调吗?还是其他一些技术,比我目前用于把手助手的技术要差一些?

1 个答案:

答案 0 :(得分:2)

不是让Blaze渲染列表然后使用JQuery添加标题,而是可以在模板本身中进行分组和标题,如下所示:

<template name="grouped">
  {{#each groups}}
    <h2>{{heading}}</h2>
    {{#each items}}
      {{> item}}
    {{/each}}
  {{/each}}
</template>
Template.grouped.groups = function () {
  return _.chain(ListItems.find().fetch())
          .groupBy("wins")
          .pairs()
          .map(function (pair) {return {heading: pair[0], items: pair[1]};})
          .value();
};

这似乎更多&#39; Meteoric&#39;对我来说 - 命令式DOM操作通常是Meteor中的错误方法。我不确定性能如何比较。