【问题标题】:Force handlebars template to render on demand with meteor强制车把模板使用流星按需渲染
【发布时间】:2013-05-14 08:52:13
【问题描述】:

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

我有一个模板(template1.html)

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

我想从我的/client 目录中的任何位置强制呈现此模板。车把包中是否有任何东西可以做到这一点?

编辑:添加更多细节

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

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

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

【问题讨论】:

    标签: rendering meteor handlebars.js


    【解决方案1】:

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




    defunc - 用于不使用 blaze 的流星版本

    你能提供更多的上下文吗?

    在 html 文件中呈现该模板只需使用:

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

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

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

    看看:

    【讨论】:

    • 是的,谢谢你的 Javascript 功能。这为我解决了一个问题:)
    【解决方案2】:

    您会在模板 1 中看到模板 2 中的哪些变化?下面将在插入或删除时刷新 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() );
    

    【讨论】:

    • 它与非 mongo 相关的数据有关,而是来自使用 AJAX 方法获取的 API 的数据。我试图获取该数据并按需重新渲染
    • 您可以轮询数据,然后使用第二个功能 - 在会话中设置一些内容(可能只是一个无意义的标志),然后引用它的模板将重新触发。而不是 lastUpdate,将其称为 APIchanged。不要将其视为重新渲染。将其视为更改数据并观察某些模板重新显示自身。会话反应性的替代方法是了解 deps,docs.meteor.com/#deps_autorun,或将检索到的数据添加到本地集合。
    • 我实际上确实最终使用了 Deps.autorun 来运行一个反应式计算,其会话变量类似于您在上一条评论中的内容,并且一直对我有用。谢谢
    猜你喜欢
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 2017-07-09
    • 1970-01-01
    • 2015-08-07
    相关资源
    最近更新 更多