1

我们开始在我们的一些项目中将 Handlebars 用于视图层。我们开始在两种做模板的方式之间找到一个十字路口。我一直在使用 partials 来处理模板和具有小的 HTML 模板,例如:

<p id="{{name}}">
  <label for="{{name}}Input">{{text}}</label>
  {{#if info}}
    <small>{{info}}</small>
  {{/if}}
  <textarea name="{{name}}" id="{{name}}Input"></textarea>
</p>

另一位开发人员认为我们不应该为此使用 partials,而应该为此创建帮助程序。

我可以看到帮助器更容易处理输入参数(因为我目前正在使用某种形式的“包含”帮助器来包含这些带有一些额外变量的部分)。但是,我认为您将 HTML 写入代码中的字符串并不适合我——我不认为您在那里正确地分离了您的关注点。我们还在 Java 中使用 Handlebars(通过 [Handlebars.Java][2]),因此您的 HTML 也非常多地包含在已编译的代码中 - 而不是简单的编辑视图文件。

是否有一种普遍接受的方式来处理 Handlebars 中的模板?Partials 或 Helpers 或者还有什么我不知道的?

4

1 回答 1

0

好吧,首先您需要了解,handlebars.js 与 handlebars.java 中的部分是非常不同的

在 handlebars.js 中,您声明自己的部分并在控制器中(通常)调用/命名它们,然后在视图中调用它们。在 handlebars.java 中,在您的视图中定义了一个部分,并且本质上只是一个包含路径属性的包含。包含通常是大多数项目不可或缺的一部分,我认为删除如此重要的功能没有任何好处。

此外,我在许多handlebars.js 应用程序中看到了“对所有事情都使用助手”的心态,并且很难很快维护。助手是一个很棒的功能,但应该谨慎使用。只要有可能,请使用内置帮助程序并尝试以不需要额外抽象逻辑的方式构建数据。

看看你的例子,我认为这正是部分的正确用法。

于 2015-04-03T19:40:46.897 回答