javascript - Meteor 为模板助手提供的集合中的每个对象多次渲染父对象

标签 javascript meteor handlebars.js

我的 HTML 代码是:

{{#each slides}}
   {{> slide}}
{{/each}}

我的 javascript 助手是:

Template.draggables.slides = function() {
return LiveSlides.find();
};

我已经尝试了 {{#isolate}} 围绕 {{#each}} 语句,以及一个子模板,以及一个组合两者的组合,以及更多的排列。正在重新呈现所有父模板,并且针对集合中的每个对象。所以在第一次加载网页时,如果集合中有 10 个对象,所有父模板都会被渲染。我正在记录这一切。我很确定它不会以这种方式使用常规 session 变量——我认为这是集合的行为很有趣。任何人都知道问题可能是什么?

更新——我刚刚创建了一个新的空白应用程序来测试,我仍然让父模板重新渲染它们自己——这是应用程序的所有内容:

 <body>
  {{> parent}}
</body>

<template name="parent">
    {{>child}}
</template>

<template name="child">
    {{#each desks}}
        <li>{{name}}</li>
    {{/each}}
</template>


Template.parent.rendered = function() {
    console.log('parent rendered');
};

Template.child.desks = function() {
    return Desks.find();
};

最佳答案

我认为这里发生的事情是为每个渲染的子级调用父“渲染”回调。所以父级实际上并没有再次被放回 DOM 上。它呈现的回调被 children 触发。如果有您要尝试完成的特定用例,请告诉我,我会尝试通过一些建议来扩展我的回答。

关于javascript - Meteor 为模板助手提供的集合中的每个对象多次渲染父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15032576/

相关文章:

javascript - dojo.empty()/domConstruct.empty() 到底做了什么

javascript - 如何在 Handlebars 模板中动态添加类

javascript - 如何在 Ember-data 中的一个 JSON 请求中加载两个模型?

javascript - 单击选择选项时如何显示/隐藏 div

javascript - MetaMask - RPC 错误 : Error: [ethjs-query] while formatting outputs from RPC

javascript - 将 javascript 对象转换为数组。如何?

javascript - 全栈 JavaScript 框架是在客户端还是服务器上创建 HTML?

javascript - 如何将集合中的一份文档发布到客户端?

reactjs - Enzyme - 测试嵌套组件是否正确呈现

spring-mvc - 如何国际化 Handlebars + Backbone View ?