Javascript 对象参数的剪切字符串长度,单位为ng repeat

Javascript 对象参数的剪切字符串长度,单位为ng repeat,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个对象列表,其中所有参数都使用ng repeat显示在表中 有时,对象的Title参数会很长,因此会使表在某些点上拉伸。我尝试过使用filter,但我认为这会切断表中显示的行,而不是随机对象参数的字符 有没有办法把这个标题缩短到一定的长度,然后在结尾加上“…”呢?如果以前有人问过这个问题,我会道歉,但我的研究没有找到我需要的答案 您可以编写javascript函数来强制文本的最大长度: $scope.forceMaxLength = function(s, maxLength) {

我有一个对象列表,其中所有参数都使用ng repeat显示在表中

有时,对象的Title参数会很长,因此会使表在某些点上拉伸。我尝试过使用filter,但我认为这会切断表中显示的行,而不是随机对象参数的字符


有没有办法把这个标题缩短到一定的长度,然后在结尾加上“…”呢?如果以前有人问过这个问题,我会道歉,但我的研究没有找到我需要的答案

您可以编写javascript函数来强制文本的最大长度:

$scope.forceMaxLength = function(s, maxLength) {
     if(s.length > maxLength) {
         return Array.prototype.slice.apply(s, [0, maxLength-3]).join('') + '...';
     } else {
         return s;
     }
}
现在,您可以在角度模板中使用此选项:

   <div ng-repeat="item in items">
        <h3>{{ forceMaxLength(item.title, 25) }}</h3>
   </div>

{{forceMaxLength(item.title,25)}
话虽如此,使用
文本溢出:省略号可能是更好的解决方案

这样做的原因是文本的宽度由每个字符的宽度之和组成,并且字符宽度可以变化

这两个字符串都有三十四个字符:

IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm


如果要截断这些字符串,使其适合给定的宽度,则需要截断点位于相应字符串中的不同位置。

这应在
css
级别上使用
文本溢出:省略号。我真的很感激,最后我同意了你的第一个建议。虽然我更喜欢使用省略号,但样式影响的是文本所在区域的大小,而不是文本本身。不过,我对这个解决方案非常满意,因为任何具有这种长度的参数现在都将被缩短,从而使线条更加可见。