Ember 2:截断文本并添加省略号

Ember 2: Truncate text and add ellipses

我正在寻找一个简单的插件或助手,用于截断并添加省略号的长字符串。我发现了一些带有 handlebar helper 的例子,但我认为大多数都已经过时了。我创建了一个名为 truncate-text 的 ember 助手,并试图拼凑示例,但没有成功。此外,如果有一种方法可以定义每个用例的字符数限制,那将是一个奖励。

这是我 helpers/truncate-text.js 中的内容 从 'ember';

导入 Ember
export function truncateText(text) {
  if (text.length > 60) {
    var theString = text.substring(0, 60) + " ... ";
    return new Ember.Handlebars.SafeString(theString);
  } else {
    return text;
  }
}

export default Ember.Helper.helper(truncateText);

在我的 template.hbs {{truncate-text text="Long text here."}

如能做到,将不胜感激 {{truncate-text text="Long text here." limit=65}}

这是一个根据您指定的限制截断文本的助手示例:

function truncateText(params, hash) {
  const [ value ] = params;
  const { limit } = hash;
  let text = '';

  if (value != null && value.length > 0) {
    text = value.substr(0, limit);

    if (value.length > limit) {
      text += '...';
    }
  }

  return text;
}

export default Ember.Helper.helper(truncateText);

然后您将在模板中使用它,如下所示

{{truncate-text "Lorem ipsum dolor long text" limit=5}}

你可以在这里看到演示https://ember-twiddle.com/fcb02795216a206b64dc

通常你不需要javascript,你可以用css代替

.text {
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100px;
  background: green;
  white-space: pre;
}

JSbin