【问题标题】:Ember.js helpers and Handlebars.js (runtime-only build)Ember.js 助手和 Handlebars.js(仅运行时构建)
【发布时间】:2012-09-09 11:17:26
【问题描述】:

有什么方法可以预编译 Handlebars 模板,以便它了解 Ember.js 助手,如“action”、“view”等?

我问的原因是因为我需要将 Ember.js 与 Handlebars 的仅运行时版本一起使用(由于 Google Chrome 中的 CSP),而且 Ember.js 目前似乎不完全支持这种情况: https://github.com/emberjs/ember.js/issues/1303

【问题讨论】:

    标签: ember.js handlebars.js


    【解决方案1】:

    您可以使用 Ember.Handlebars.precompile (ember-handlebars/lib/ext.js#L104) 预编译 Ember Handlebars 模板。

    在浏览器之外(例如在节点中)进行预编译的基本策略是:

    • 加载handlebars.js
    • 加载 ember.js
    • 填充 Ember 期望的一些浏览器 API(这在 1.0 中不应该是必需的,但现在是必需的)。
    • template = Ember.Handlebars.precompile(string)
    • Ember.TEMPLATES[name] = Ember.Handlebars.template(template)

    如果您拥有扩展名为 .handlebars 的资产,Rails 的 ember-rails gem 会为您执行此操作。

    ember-rails gem 还维护一个 shim .js 文件,您可以使用该文件在其他非浏览器环境 (ember-precompiler.js) 中进行预编译。

    【讨论】:

    • 酷!这正是我想要的。
    猜你喜欢
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 2018-05-19
    相关资源
    最近更新 更多