一尘不染

使用AngularJS限制字符串的长度

angularjs

我有以下几点:

<div>{{modal.title}}</div>

有没有一种方法可以将字符串的长度限制为20个字符?

还有一个更好的问题是,...如果超过20个字符,有没有办法我可以将字符串更改为截断并显示在末尾?


阅读 595

收藏
2020-07-04

共1个答案

一尘不染

编辑
最新版本的AngularJS报价limitTo过滤器

您需要这样的 自定义过滤器

angular.module('ng').filter('cut', function () {
        return function (value, wordwise, max, tail) {
            if (!value) return '';

            max = parseInt(max, 10);
            if (!max) return value;
            if (value.length <= max) return value;

            value = value.substr(0, max);
            if (wordwise) {
                var lastspace = value.lastIndexOf(' ');
                if (lastspace !== -1) {
                  //Also remove . and , so its gives a cleaner result.
                  if (value.charAt(lastspace-1) === '.' || value.charAt(lastspace-1) === ',') {
                    lastspace = lastspace - 1;
                  }
                  value = value.substr(0, lastspace);
                }
            }

            return value + (tail || ' …');
        };
    });

用法:

{{some_text | cut:true:100:' ...'}}

选项:

  • 逐字(布尔)-如果为true,则仅按字数限制切入,
  • max(整数)-文本的最大长度,切成此字符数,
  • tail(字符串,默认值:“…”)-如果该字符串被剪切,则将该字符串添加到输入字符串中。

另一个解决方案http
://ngmodules.org/modules/angularjs-truncate(@Ehvince提供)

2020-07-04