1

我一直在我正在查看的 html 代码中看到这一点。显然它的 Jquery 标签添加了 html 模板。

{{#Foo}} 
<div> bla bla </div>

我猜是Foo类??

{{^Foo}}
<div> bla bla </div>

^ 是干什么用的??

现在我知道它做了什么,它将 HTML 元素存储在 variable 中Foo,然后这些 HTML 元素稍后会被添加。但我不知道它是如何工作的,也不知道为什么它的 # 和 ^ 或更多关于这里发生的事情......

感谢您的任何帮助。

我使用 html + javascript 代码。

4

4 回答 4

4

它实际上不是 jQuery 模板(如您所建议的),而是这里使用的Mustache。这种语法...

{{#Foo}}
...something
{{/Foo}}
{{^Foo}}
...something
{{/Foo}}

... 用于涵盖这两种情况:

  • Foo集合不为空时,它将使用{{#Foo}}普通部分的内部块进行模板化:
  • Foocollection 为空时,将使用所谓的inverted section(set within {{^Foo}}) 的模板来代替:

文档中的示例:

{{#repo}}
  <b>{{name}}</b>
{{/repo}}
{{^repo}}
  No repos :(
{{/repo}}

它实际上非常有用:我们经常需要为“无项目”案例提供单独的模板。通常它是用块之类的东西来完成的{{#if... }} ... {{#else}},但这会在模板中注入逻辑。Mustache 提供了一种替代方法——我可以说非常优雅——解决这个问题。

于 2012-11-06T08:38:47.997 回答
0

这看起来不像 jQuery 语法。

然而,这确实看起来像大多数模板引擎的语法,例如underscore.jshandlebarstwig

于 2012-11-06T08:36:19.533 回答
0

这既不是 HTML 也不是 jQuery。模板引擎或其他脚本使用它来根据他们能够在文档的源代码中识别的代码做一些工作(例如,在您的情况下以双花括号开头和结尾)。

于 2012-11-06T08:36:57.303 回答