我们在一些项目中开始使用Handlebars作为视图层。我们开始在两种做模板的方式之间达到一个十字路口。我一直在使用偏见处理模板和放大器。拥有小型HTML模板,如:
<p id="{{name}}">
<label for="{{name}}Input">{{text}}</label>
{{#if info}}
<small>{{info}}</small>
{{/if}}
<textarea name="{{name}}" id="{{name}}Input"></textarea>
</p>
另一位开发人员认为我们不应该使用部分内容来实现这一目标。相反,我们应该为此创建帮手。
我可以看到帮助者更容易处理输入参数(因为我目前正在使用某种形式的&#34; include&#34; helper来包含这些部分和一些额外的变量)。但是我并不认为你在代码中将HTML写成字符串 - 我不认为你在那里正确地separating your concerns。我们也在Java中使用Handlebars(通过[Handlebars.Java] [2]),所以你的HTML在编译代码中也是如此 - 而不是简单地编辑视图文件。
是否有一种普遍接受的方法来处理Handlebars中的模板?部分或帮助者还是还有其他我不了解的东西?
答案 0 :(得分:0)
嗯,首先你需要了解handlebars.js中的partials与handlebars.java的区别是非常不同的
在handlebars.js中,您声明自己的部分并在控制器中调用/命名它们(通常),然后在视图中调用它们。在handlebars.java中,在视图中定义了partial,它实际上只是一个包含路径属性的include。包含通常是大多数项目的组成部分,我认为放弃这么重要的功能没有任何好处。
此外,我已经看到许多handlebars.js应用程序中“使用帮助程序”的心态,很难很快维护。助手是一个很好的功能,但他们应该谨慎使用。尽可能使用内置帮助程序,并尝试以不需要额外抽象逻辑的方式构建数据。
看看你的例子,我认为这正是部分的正确用法。