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

War*_*arz 6 rendering handlebars.js meteor

如何强制流星模板(车把模板)通过javascript重新渲染.例如,

我有一个模板(template1.html)

<template name="template1">
</template>
Run Code Online (Sandbox Code Playgroud)

我想从我的/client目录中的任何地方强制渲染此模板.车把包里有什么可以做到的吗?

编辑:添加更多细节

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

<template name="template1">
     {{each items}}
      {{> template2}}
     {{/each}}
 <template/>
Run Code Online (Sandbox Code Playgroud)

如果项目中的任何数据发生变化,那么我理解,template1并且template2两者都会呈现,但是当有任何数据发生变化时会发生什么template2,我想template1再次刷新/渲染?

132*_*941 7

对于新版本的METEOR使用UI.render()和UI.insert()




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

你能提供一些更多的背景吗?

在html文件内部渲染该模板只需使用:

<div id="somediv">
    {{> template1}}
</div>
Run Code Online (Sandbox Code Playgroud)

如果你想通过javascript这样做,一种方法是:

$('#somediv').html(Meteor.render(Template.template1));
Run Code Online (Sandbox Code Playgroud)

看一眼:


Jim*_*ack 1

您会在模板 1 中看到模板 2 中发生了什么变化?下面将在插入或删除时刷新 template1。

<template name="template1">
  {{itemsCount}} items
  {{#each items}}
  {{> template2}}
  {{/each}}
<template/>
Run Code Online (Sandbox Code Playgroud)

或者,

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

    Template.template1.lastUpdate = function () {
      return Session.get('lastUpdate');
    };
Run Code Online (Sandbox Code Playgroud)

然后在更新数据的地方添加:

    Session.set('lastUpdate', new Date() );
Run Code Online (Sandbox Code Playgroud)