强制把手模板按需渲染流星

时间:2013-05-19 19:36:15

标签: rendering meteor handlebars.js

如何强制通过javascript重新渲染流星模板(手柄模板)。例如,

我有一个模板(template1.html)

<template name="template1">
</template>

我想强制从/client目录中的任何位置渲染此模板。车把套件中有什么可以做到的吗?

编辑:添加更多详细信息

我第一次创建这个模板没有任何困难,无论是通过把手还是javascript。我想刷新模板并使rendered回调再次运行。我有代码,在呈现该模板时将获取并显示相关数据。

<template name="template1">
     {{each items}}
      {{> template2}}
     {{/each}}
 <template/>

如果项目中的任何数据发生变化,我明白,template1template2都会呈现,但当template2中有任何数据发生变化时会发生什么,我想刷新/再次渲染template1

2 个答案:

答案 0 :(得分:7)

对于新版本的气象使用UI.render() and UI.insert()




defunc - 对于不使用大火的流星版本

您能提供更多背景信息吗?

在html文件中提交该模板只需使用:

<div id="somediv">
    {{> template1}}
</div>

如果你想通过javascript实现这一目的,那就是:

$('#somediv').html(Meteor.render(Template.template1));

看看:

答案 1 :(得分:1)

您在模板1中看到的template2有什么变化?下面将在插入或删除时刷新template1。

<template name="template1">
  {{itemsCount}} items
  {{#each items}}
  {{> template2}}
  {{/each}}
<template/>

或者,

    <template name="template1">
      Last updated: {{lastUpdate}}
      {{#each items}}
      {{> template2}}
      {{/each}}
    <template/>

    Template.template1.lastUpdate = function () {
      return Session.get('lastUpdate');
    };

然后在某处您更新数据添加:

    Session.set('lastUpdate', new Date() );