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