javascript - meteor .js : Execute method after list has been populated

标签 javascript meteor

我刚开始研究一个 meteorite 包,它可以将组/标题添加到列表中。
See demo here .
Source code for demo is here .

基本上,我想做的是等待列表完全填充,然后调用一个方法来设置标题/组等。我现在的方法是在 { {#each}} 循环,像这样:

<ul>
{{#each listItems }}
  {{> listItem }}
{{/each}}
</ul>

{{ groupList }}

groupList 帮助程序在循环运行后执行我想要运行的代码(设置标题的代码)。

这感觉有点难看,我想我更喜欢的是对 {{#each}} 循环的回调,它在完成迭代后被调用(和 重要的是 如果循环中的项目发生变化)。
我猜有点像模板的 rendered() 方法。
(我当然已经尝试过 rendered() 方法,但它在循环运行之前就已执行。)

有这样的回调吗?或者其他一些比我目前使用的 Handlebars 助手更不丑陋的技术?

最佳答案

与其让 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();
};

这对我来说似乎更“ meteor ”——命令式 DOM 操作在 Meteor 中通常是错误的方法。我不确定性能比较如何。

关于javascript - meteor .js : Execute method after list has been populated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24427627/

相关文章:

javascript - 如何让 Meteor 中的 session 显示在单独的窗口中?

javascript - 显示 onclick 函数后从数据库检索的推文

javascript - 当开发工具打开时,IE 11 需要很长时间才能加载 ng-option

javascript - Meteor:如何仅包含存在的模板?

meteor .js : Get anonymous visitors unique ID/ip/whatever?

javascript - 如何将文件列表传递给引导箱回调?

javascript - Django Ajax 返回整个 html 页面

javascript - `this` 内部格式化函数

javascript - 如何从 Windows.Storage.StorageFile WinJS 加载 blob

javascript - 在helper上调用收集数据