【问题标题】:Mustache template library?小胡子模板库?
【发布时间】:2012-02-14 22:47:04
【问题描述】:

小胡子有哪些用例?

我今天才发现它,但我似乎无法理解它与仅在您的框架(cakePHP、django 等)中创建常规模板文件或仅具有 html + php 文件有何不同。

【问题讨论】:

  • 用例 #1:仅静态托管。
  • 用例 #2 使用 javascript 和 mustache 模板从 json api 渲染数据 :)

标签: javascript html django cakephp mustache


【解决方案1】:

Mustache 允许在视图中几乎没有智能——关注点分离是它的用例。

它是另一个模板引擎/库,唯一(真正的)区别在于它的语法和理念。

【讨论】:

    【解决方案2】:

    Mustache 的全部意义在于它没有逻辑。您将格式良好的 JSON 传递给它,然后它以超级简单的语法完成其余的工作。这与 PHP 的不同之处在于没有 if 语句、else 子句或 for 循环。相反,只有标签。一些标签被替换为一个值,一些什么都没有,而另一些则是一系列值。您无需管理多个数组,只需设置一个 javascript 对象,然后忘记并观看页面呈现。

    更多信息/来源:http://mustache.github.com/mustache.5.html

    【讨论】:

    • mustache里面其实有条件语句和循环。
    • "我们称其为“无逻辑”,因为没有 if 语句、else 子句或 for 循环。取而代之的是只有标签。一些标签被替换为一个值,一些没有,还有其他的一系列的价值观。”显然,使用该系统可以实现一切,否则人们不会使用它。但是本身没有条件语句。
    • 我明白你的意思。但我只指出这一点,因为我有同事等试图让我们的团队远离 Mustache,因为他们不知道如何在他们的 Mustache 模板中编写条件块(或者用他们的话来说,他们会说“Mustache 中没有 if 语句或循环”)。有条件的:{{#item.price}} $ {{item.price}} {{/item.price}} {{^item.price}} N/A {{/item.price}}这就是我的意思。
    【解决方案3】:

    之前的回复忽略了这样一个事实,即使用一个库作为 Mustache整个页面呈现是在客户端完成的,而大多数模板引擎通常用于呈现部分和格式化服务器端。

    我看到的这个库的主要用例是创建基于 JSON 或 XML 网络服务的网络应用程序,这些网络服务由您无权访问的服务器提供服务。

    【讨论】:

    • Mustache 是一种模板语言,Mustache.js 只是其中一种实现。使用 Mustache.js 可以在客户端呈现整个页面。使用 mustache(规范的 Ruby 实现)、pystache、mustache.erl、Mustache.php、Template-Mustache、GRMustache、mustache.java、Nustache、jmustache、plustache、mustache.go、hige、mustang、Mustache.cfc、scalate、clostache 、Milk、mustache4d、Mu、Hogan.js(甚至节点上的 Mustache.js)模板在服务器端呈现。
    • 绝对正确,我的回答可能因我自己使用这个围绕由 JSON 后端提供服务的 Web 应用程序的模板系统而存在偏见。我看不到在服务器端使用它的真正优势(服务器通常用于应用程序逻辑)。
    【解决方案4】:

    Mustache 对我的主要吸引力之一是它有很多实现。

    举个简单的例子,您可能正在创建一个产品列表。

    1. 服务器端 - 加载前 25 个产品。使用 Mustache 的服务器端实现来渲染产品。
    2. 客户端 - 用户向下滚动页面并单击加载更多。此时,您使用 Ajax 调用获取其他产品,并使用 Mustache 的 JS 实现来呈现它们。

    相同的模板,在客户端和服务器端都重复使用。如果您需要更改 HTML,您只需在一个地方进行,它将与服务器端呈现的内容和客户端呈现的内容保持一致。

    【讨论】:

      猜你喜欢
      • 2011-10-14
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      相关资源
      最近更新 更多