4

我目前正在开发一个 PHP 站点,我计划将它与Mustache PHP一起使用,这样我就可以在我的 PHP 渲染以及我的 javascript(ajax 驱动)页面更新中使用相同的 mustache 模板文件。在四处搜索之后,我无法找到与 PHP 等效的 handlebars.js 库,尽管我更愿意在任何事情上都使用把手。

我正在决定是使用 Ember.js 还是 Backbone.js。我知道 Ember 使用车把,并且车把使用 mustache.js 中不存在的语法和功能,它是基于它的。我也知道 handlebars.js 可以很好地与 mustache 模板一起使用。

我倾向于 Ember 并愿意在必要时分叉和更新 Mustache PHP 以与 Handlebars.js 一起使用。

但首先,Ember.js 能很好地与直胡须模板配合使用吗?或者正确利用 Ember 是否也意味着使用只有车把支持的模板功能?

如果我必须分叉 PHP 库,我会渴望首先添加哪些主要的车把功能?

在此先感谢,这将真正帮助我决定是否值得我使用 Ember.js。

4

2 回答 2

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-of-rendering 一些输出添加了很多逻辑。

我在一些小型和大型网站上使用 Mustache(php)。Ajax 调用导致 Mustache 填写了一段 html,而 jQuery 用结果替换了一些 dom 元素。它就像一个魅力。

对我来说:不要向 Mustache 添加逻辑,只需从 Handlebar.js 中删除逻辑(我想它也可以在没有那些“帮助者”的情况下工作。)

于 2012-10-08T20:51:00.837 回答
0

我不需要使用 Ember,但确实注意到,在我发布这个问题后不久,其他人开始了在 PHP 中解析 Handlebars的项目,而这个库是另一种方法。这些库是我一直在寻找的解决方案,因为仅使用 mustache 渲染器处理车把模板有很多潜在的复杂性。

于 2014-02-19T03:22:09.967 回答