如何在Mustache.js完成渲染模板时运行回调

Jed*_*iah 9 javascript jquery mustache

一旦Mustache.js完成渲染模板并将其插入DOM,是否有一种干净的方法来定义/运行回调函数?例如,像这样:

Mustache.render(template, viewModel, function() {...});
Run Code Online (Sandbox Code Playgroud)

我能想到的最好的方法是计算我的视图模型中将插入DOM的节点数,然后使用setInterval检查DOM中是否存在多个节点.一旦他们这样做,我就可以调用我想要的功能.这似乎效率低下,可能对我有些麻烦,但我不知道还能做什么.

小智 5

与胡子无关,实际上是关于jQuery .html()的。

$('。your_div')。html(渲染).promise()。done(function(){

// do your stuff
Run Code Online (Sandbox Code Playgroud)

});


Mar*_*gan 0

如果您也使用 jQuery,您可以使用:

$("#element").ready(function() {
  // do something when Mustache.js has finished rendering
});
Run Code Online (Sandbox Code Playgroud)

Mustache.js 能够传输模板结果。项目文档对此进行了描述,但最近被删除。我不确定这是否是故意的,但它似乎仍然有效。Mustache.to_html这描述了每次渲染模板块时调用的函数的可选回调参数。也许这可以帮助解决您的问题。