【问题标题】:Handlebars templates in a Ruby on Rails applicationRuby on Rails 应用程序中的把手模板
【发布时间】:2014-04-18 17:57:07
【问题描述】:

我刚开始学习 Ember.JS,但在使用 Ruby on Rails 方面经验丰富。关于把手的使用,我有一个直截了当的问题,把手是 EmberJS 使用的模板框架。我在创建模板时看到的许多教 EmberJS 的文本都需要使用以下内容:

 <script type="text/x-handlebars" id="blog/post"> 
     // insert template here
  </script>

这里的id 属性对框架至关重要。

现在我的问题是,为了在现实世界中更多地了解 Ember,我正在查看 GitHub 上的 Discourse 项目,该项目完全使用 Ember 在前端构建。他们所有的模板都省略了&lt;script&gt; 标签。除非我在错误的地方寻找,否则我真的无法在任何地方找到它。

我想在这里学习的是什么时候需要,什么时候可以省略? Discourse 开源项目中是否有一些诡计允许他们在这种特殊情况下省略它?

【问题讨论】:

  • Discourse 中有什么东西可以在部署之前预编译模板吗?这在 Handlebars 中很常见(或者至少我就是这样做的)。或者可能会遍历目录树,将每个模板包装在适当的&lt;script&gt; 中,然后将它们混合在一起?
  • 完全有可能——如果有的话,这将是这个问题的完全可以接受的答案。我也在研究,如果找到答案,我会发布答案。虽然我不确定预编译器如何知道id 在此处完成工作时使用什么。基于文件名?
  • 最有可能基于文件名,id="blog/post" 确实看起来像一条路径。并检查 handlebars_assets 的 Gemfile。
  • 里面有一个叫做barber的宝石我要试试看是不是在这里做的。

标签: javascript ruby-on-rails ruby ember.js handlebars.js


【解决方案1】:

在讨论中查看他们的 gem 依赖项。这是一款非常定制的 Ember 应用,在开始 TBH 时可能不是最好的检查。

如果您使用名为 ember-rails 的 gem,它会处理 ember、ember 数据、handlebars 和 jquery 的版本,它还会使用文件命名和文件夹约定以及资产预编译阶段自动连接模板 id 命名(使用旧的轨道魔法)。它还适当地连接了所有组件和模型。这很好。我每天都在我的项目开发中使用它。

FWIW 我认为随着时间的推移,Ember 的核心团队正在逐渐远离红宝石世界,这是完全有道理的。不管怎样,Rails 为 ember 提供了一个非常好的后端。

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2017-07-14
    • 1970-01-01
    • 2011-05-15
    • 2017-12-09
    相关资源
    最近更新 更多