gpt4 book ai didi

handlebars.js - Handlebars 1.x 和 2.x API 之间有什么区别?

转载 作者:行者123 更新时间:2023-12-04 07:22:23 26 4
gpt4 key购买 nike

我们目前在生产中使用 Handlebars 1.3.0 版,我想知道我们需要进行哪些更改才能升级到 2.x 版。由于 HandlebarsJS 团队致力于语义版本控制,我知道肯定会有一些重大更改,但我没有看到它们列在 README.md 中。 . changelogs for the v2.0.0-alpha.N releases中列出了一些项目,但我不清楚这是否是完整列表(或者在 2.0.0 final 发布之前是否存在完整列表)。一些 1.x 版本也有“兼容性注意事项”部分,但我相信它们都是非破坏性/向前兼容的。

任何人都可以对 API 差异或 2.x 系列的目标/改进提供一些见解吗?

Compatiblity Notes

  • A JSON polyfill is required to run the compiler under IE8 and below. It's recommended that the precompiler be used in lieu of running the compiler on these legacy environments.
  • helperMissing helper no longer has the indexed name argument. Helper name is now available via options.name.
  • Precompiler output has changed, which breaks compatibility with prior versions of the runtime and precompiled output.
  • JavaScriptCompiler.compilerInfo now returns generic objects rather than javascript source.
  • AST changes
    • INTEGER -> NUMBER
    • Additional PartialNode hash parameter
    • New RawBlockNode type
  • Data frames now have a _parent field. This is internal but is enumerable for performance/compatability reasons.


更新:来自 ember.js blog在 10/16/2014

除了上面提到的变化:

Lines containing only block statements and whitespace are now removed. This matches the Mustache spec but may cause issues with code that expects whitespace to exist but would not otherwise.

最佳答案

如果您根据官方 Release Notes 查看 Handlebars 的 v1.3.0 和 v2.0.0-alpha.1 版本之间的变化您会看到,这是两个主要更改,它们会在升级过程中破坏您的模板。

  • 预编译器输出已更改,这意味着您的 1.x 预编译模板将与 Handlebars 2.x 运行时不兼容,并且 2.x 运行时将与旧模板不兼容。您应该更新预编译器、更新运行时并更新所有模板。
  • 部分不再有权访问父上下文( ../ ),但现在可以接受散列作为参数并可以通过 @root 访问根上下文多变的。所以看看你的部分使用 ../并将其更改为使用本地数据,作为参数传递给 partial。

  • 因此,这是升级到 2.x Handlebars 版本时应注意的主要事项。有一些影响 helperMissing 的内部变化 helper , JavaScriptCompiler.compilerInfo , 更新 AST 数据帧 .但所有这些只对用户有意义,他们使用自己的 fork 或在运行时进行一些修改。其他变化主要是错误修正。

    关于handlebars.js - Handlebars 1.x 和 2.x API 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24662703/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com