javascript - 带有 mustache.js 的行 strip 化和第一个/最后一个类

标签 javascript mustache

人们通常希望将列表中的第一项和/或最后一项与其他项区别对待。有没有办法用 mustache 做到这一点?行条纹呢?

(显然,在处理完模板后,人们总是可以使用 jquery 或其他任何工具来应用 css 类,但我想知道模板级别的更多信息。)

最佳答案

mustache 很轻,所以 AFAIK,它不提供该功能。

你可以使用类似的东西来获得偶数/奇数类:

var view = {
  arr: ['one', 'two', 'three'],
  clazz: function() {
    return _counter++ % 2 == 0 ? 'even' : 'odd';
  }
};

var template = '{{#arr}}<span class="{{clazz}}">{{.}}</span>{{/arr}}';
Mustache.to_html(template, view);

或者先对数据进行预处理,类似这样:

function preprocessArrayWithFirstLastClass(src) {
  var clazz;
  for (var i = 0; i < src.length; i++) {
    clazz = i % 2 == 0 ? 'even' : 'odd';
    if (i == 0) clazz += ' first';
    if (i == src.length - 1) clazz += ' last';
    src[i].clazz = clazz;
  }
}

var view = {
  arr: preprocessArrayWithFirstLastClass([{name: 'one'}, {name: 'two'}, {name: 'three'}])
};

var template = '{{#arr}}<span class="{{clazz}}">{{name}}</span>{{/arr}}';
Mustache.to_html(template, view);

关于javascript - 带有 mustache.js 的行 strip 化和第一个/最后一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4414279/

相关文章:

javascript - 单击事件后,JavaScript 可以更改客户端页面中的 CSS 类吗?

javascript - 无副作用函数

javascript - 切换文本字段的按钮,true 和 false

javascript - mustache.js 中的三个 {{{ }}} 是什么意思?

php - 在桌面浏览器上正确渲染表情符号

javascript - 隐藏表格中的长文本但保持对它的访问

javascript - 随着图像变大,增加父 div 的大小

javascript - jQuery + 客户端模板 = "Syntax error, unrecognized expression"

templating - mustache /霍根 JS : Is it possible to reference parent tags within a list?