【发布时间】:2012-08-02 08:57:35
【问题描述】:
是否有 JsRender 事件或回调来确定渲染方法何时完成?我想处理一些模板并确保它们在我获取结果文档元素之前都已完成。所有渲染方法是否同步运行?
【问题讨论】:
标签: jsrender
是否有 JsRender 事件或回调来确定渲染方法何时完成?我想处理一些模板并确保它们在我获取结果文档元素之前都已完成。所有渲染方法是否同步运行?
【问题讨论】:
标签: jsrender
jsRender同步渲染模板,没有回调函数,.render()函数只是返回渲染后的数据。
当您确实有多个异步进程(例如返回数据的 ajax 调用,然后您使用 jsRender 渲染),并且您需要在执行某些操作之前完成所有这些进程,您可以使用 jQuery 的 Deferred 对象。查看.when() 了解如何执行此操作。
【讨论】:
有一种方法可以确定模板引擎何时呈现最后一行。 a) 创建一个辅助函数。在这种情况下称为:jsRenderDone 然后在底部的模板中使用条件逻辑,仅在呈现最后一行后触发辅助函数。
{{if #index+1 >= #get("array").data.length}}
{{:~jsRenderDone()}} {{/if}}
【讨论】: