【问题标题】:How to execute a Javascript callback when a partial is rendered in Handlebars在 Handlebars 中呈现部分时如何执行 Javascript 回调
【发布时间】:2019-01-25 07:46:14
【问题描述】:

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

我试图覆盖 '>' 帮助器,但它不起作用......我不知道该怎么做。

谢谢大家的帮助。

【问题讨论】:

  • 可能你需要手动渲染部分。覆盖Handlebars.VM.invokePartial 也可能是一种方式。

标签: javascript handlebars.js partials


【解决方案1】:

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);
};

【讨论】:

    【解决方案2】:

    更直接的方式:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 2012-11-19
      • 2015-11-05
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多