如何在 Mustache.js 模板中交替行颜色?

发布于 2024-12-02 04:23:14 字数 276 浏览 1 评论 0原文

我有一个模板:

{{#people}}
  <div style="background-color: **gray/white**;"><span>{{name}}</span>: <span>{{title}}</span></div>
{{/people}}

有没有办法设置背景颜色而不从我的控制器传递它?这纯粹是显示,因此我觉得它不属于我的控制器,因此如果可能的话,希望避免在那里命名颜色。

I have a template:

{{#people}}
  <div style="background-color: **gray/white**;"><span>{{name}}</span>: <span>{{title}}</span></div>
{{/people}}

Is there a way to set that background-color without passing it in from my controller? This is purely display and I do not feel that it belongs in my controller as a result, so would like to avoid naming colors there if possible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

抱猫软卧 2024-12-09 04:23:14

正如我在评论中提到的,Mustache 无法解决这个问题,但是我找到了一个 Mustache.js 特定的方法:

var template = '{{#people}}'
  +'  <div style="background-color: {{color}}"><span>{{name}}</span>: <span>{{title}}</span></div>'
  +'{{/people}}'

var data = {
  people: [
    {name: 'a', title: 'b'},
    {name: 'c', title: 'd'},
    {name: 'e', title: 'f'},
    {name: 'g', title: 'h'},
    {name: 'i', title: 'j'},
  ],
  color: function() {
    return window.divcolor = window.divcolor == 'gray' ? 'white' : 'gray'
  }
}

Mustache.to_html(template, data)

As I mentioned in the comment, Mustache can not solve this, however I found a mustache.js-specific way:

var template = '{{#people}}'
  +'  <div style="background-color: {{color}}"><span>{{name}}</span>: <span>{{title}}</span></div>'
  +'{{/people}}'

var data = {
  people: [
    {name: 'a', title: 'b'},
    {name: 'c', title: 'd'},
    {name: 'e', title: 'f'},
    {name: 'g', title: 'h'},
    {name: 'i', title: 'j'},
  ],
  color: function() {
    return window.divcolor = window.divcolor == 'gray' ? 'white' : 'gray'
  }
}

Mustache.to_html(template, data)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文