Ember.js 余烬2:截断文本并添加省略号

Ember.js 余烬2:截断文本并添加省略号,ember.js,ember-cli,Ember.js,Ember Cli,我正在寻找一个简单的插件或帮助程序,可以截断长字符串,还可以添加省略号。我发现一些例子与把手助手,但我认为大多数是过时的。我创建了一个名为truncatetext的余烬助手,并尝试将示例拼凑在一起,但没有成功。此外,如果有一种方法可以定义每个用例中字符数的限制,那将是一个额外的好处 以下是我的helpers/truncate-text.js中的内容 从“余烬”导入余烬 export function truncateText(text) { if (text.length > 60)

我正在寻找一个简单的插件或帮助程序,可以截断长字符串,还可以添加省略号。我发现一些例子与把手助手,但我认为大多数是过时的。我创建了一个名为truncatetext的余烬助手,并尝试将示例拼凑在一起,但没有成功。此外,如果有一种方法可以定义每个用例中字符数的限制,那将是一个额外的好处

以下是我的helpers/truncate-text.js中的内容 从“余烬”导入余烬

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);
在my 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}}

您可以在这里看到演示

通常不需要javascript,您可以使用css

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

非常有魅力。非常感谢您的帮助!我会用if(value!==undefined&&value!==null&&value.length>0)替换if语句否则它会抛出exceptions@Emad谢谢,更新到
value!=null
应该包括
null
undefined
。文本溢出:很遗憾,省略号仅适用于单行项目。