我们如何在 jsrender 中使用 substring(...) 等表达式

How can we use expressions such as substring(...) in jsrender

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

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

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

你可以这样写:

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

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

或(对于您的完整场景):

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

考虑到该表达式的复杂性,将其封装在辅助函数中会更清晰 (http://www.jsviews.com/#helpers) or custom tag (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 /}}