我们如何在jsrender中使用诸如substring(...)之类的表达式

时间:2016-04-29 10:02:07

标签: jsrender

我有一个500字符的段落。我想在第155个字符后插入...并且应该隐藏其他字符。如果有人知道jsrender中substring的语法和用法。指导我

1 个答案:

答案 0 :(得分:2)

JsRender允许您在标签中使用表达式。

查看文档主题,例如 Tag syntax Paths and expressions

你可以这样写:

{{:myfield.substring(0, 155)}}

{{:myfield.substring(0, 155) + '...'}}

或(完整情景):

{{:myfield.subscript(0, 155) + (myfield.length>155 ? '...' : '')}}

鉴于该表达式的复杂性,将其封装在帮助器(http://www.jsviews.com/#helpers)或自定义标签(http://www.jsviews.com/#tags)中会更清晰:

例如,您可以定义帮助程序:

$.views.helpers("trimLength", function(value, maxLength) {
  if (maxLength && value.length > maxLength) {
    return value.substring(0, maxLength ) + "...";
  }
  return value;
})

然后写:

{{:~trimLength(myfield, 155)}}

或定义自定义标记:

$.views.tags("trim", function(value) {
  var maxLength = this.tagCtx.props.maxLength;
  if (maxLength && value.length > maxLength) {
    return value.substring(0, maxLength ) + "...";
  }
  return value;
})

然后写:

{{trim myfield maxLength=155 /}}