我目前正在开发一个PHP网站,我计划与Mustache PHP一起使用,以便我可以使用与我的PHP呈现相同的胡子模板文件以及我的javascript(ajax驱动)页面更新。在searching around之后,我无法找到适用于PHP的handlebars.js等效库,尽管我更喜欢使用把手来处理所有内容。
我正在决定是否使用Ember.js或Backbone.js。我知道Ember使用了把手,而且把手使用了mustache.js中没有的语法和功能。我也明白handlebars.js可以很好地使用胡子模板。
我倾向于Ember并愿意更新Mustache PHP以便在必要时使用Handlebars.js。
但首先,Ember.js能否直接使用胡子模板?或者Ember的正确利用是否也意味着使用只有把手支撑的模板功能?
如果我必须分叉PHP库,那么我将首先想要添加的主要把手功能是什么?
在此先感谢,这将真正帮助我决定使用Ember.js是否值得。
答案 0 :(得分:1)
Handlebar.js在Mustache(.php / .js)语法上添加了一些“帮助器”......但是这些完全没用,因为Mustache已经很好地做到了这一点:
{{#each xyz}}...{{/each}} is the same as {{#xyz}}...{{/xyz}} in Mustache.
{{#if xyz}}...{{/if}} is the same as {{#xyz}}...{{/xyz}} in Mustache.
{{#with xyz}}...{{/with}} is the same as {{#xyz}}...{{/xyz}} in Mustache.
相反:
{{#unless xyz}}...{{/unless}} is the same as {{^xyz}}...{{/xyz}} in Mustache.
Ember.js看起来非常像handlebar.js,而Backbone.js似乎为逻辑无关的Mustache-Kind渲染了一些输出添加了很多逻辑。
我在一些小型和大型网站上使用Mustache(php)。 Ajax调用导致Mustache填写了一些html,jQuery用结果替换了一些dom元素。它的工作就像一个魅力。
对我来说:不要向Mustache添加逻辑,只需从Handlebar.js中删除逻辑(我想它也可以在没有那些“助手”的情况下工作。)
答案 1 :(得分:0)
我不需要使用Ember,但确实注意到在我发布此问题后不久,其他人开始了Handlebars parsing within PHP和this library is another approach的项目。这些库是我正在寻找的解决方案,因为只使用小胡子渲染器治疗把手模板有很多潜在的并发症。