如何在Handlebars中呈现部分时执行Javascript回调

时间:2014-08-18 01:55:34

标签: javascript handlebars.js partials

我已经在JS中创建了一个包装Handlebars的自定义类,这样我可以在渲染模板时执行回调,但由于Handlebars中的部分是自动生成的,所以当部分是自动生成时,我怎么能执行回调?渲染?

我试图覆盖'>'帮助但它不起作用......我不知道如何做到这一点。

谢谢你们的帮助。

2 个答案:

答案 0 :(得分:2)

Handlebars运行时调用方法Handlebars.VM.invokePartial来执行部分。您可以覆盖它以添加回调函数调用:

Handlebars.VM.invokePartialOrigin = Handlebars.VM.invokePartial;
Handlebars.VM.invokePartial = function () {
  var args = [].slice.call(arguments, 0);
  Handlebars.VM.invokePartialOrigin.apply(Handlebars.VM, args);
  callback(args);
};

答案 1 :(得分:0)

更直接的方法:

const template = Handlebars.compile(source)
Handlebars.registerPartial(name, (ctx, options) => {
   callback(ctx)
   return template(ctx)
})