【问题标题】:Is there a JsRender render completed event是否有 JsRender 渲染完成事件
【发布时间】:2012-08-02 08:57:35
【问题描述】:

是否有 JsRender 事件或回调来确定渲染方法何时完成?我想处理一些模板并确保它们在我获取结果文档元素之前都已完成。所有渲染方法是否同步运行?

【问题讨论】:

    标签: jsrender


    【解决方案1】:

    jsRender同步渲染模板,没有回调函数,.render()函数只是返回渲染后的数据。

    当您确实有多个异步进程(例如返回数据的 ajax 调用,然后您使用 jsRender 渲染),并且您需要在执行某些操作之前完成所有这些进程,您可以使用 jQuery 的 Deferred 对象。查看.when() 了解如何执行此操作。

    【讨论】:

    • 是的,当您将渲染的内容插入到 DOM 中时(例如 $(...).html( $.render.myTmpl(data) ); (其中是同步的)然后您可以立即(在下一行)调用 $(...).on(...) 来附加处理程序。
    【解决方案2】:

    有一种方法可以确定模板引擎何时呈现最后一行。 a) 创建一个辅助函数。在这种情况下称为:jsRenderDone 然后在底部的模板中使用条件逻辑,仅在呈现最后一行后触发辅助函数。

    {{if #index+1 >= #get("array").data.length}}
    {{:~jsRenderDone()}} {{/if}}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多