Удаление десятичной точки в пределе для функции в angularjs

Я получаю данные из файла JSON, который я связываю на странице HTML с помощью {{регулярного выражения}}.

Я хочу отображать только первые 5 символов числа (включая точку). Например, если число "123,4567", я хочу отобразить только "123,4", поэтому я применяю {{ exp | limitTo: 5 }}, Но если число "1234,567", то оно оценивается как "1234", чего я не хочу; Я хочу только "1234".

Как мне этого добиться?

4 ответа

Пытаться:

{{exp|number:0}}

Число фильтруется с 0 десятичной запятой.

Angular позволяет создавать собственные фильтры

<div ng-repeat="students as student">
 <div class="student-name">{{student.name}}</div>
 <div class="student-fee">{{student.fee|limitDigit }}</div>
</div>    


angular.filter('limitDigit', function() {
    return function(decimalNumber) {
        var str = ("" + parseFloat(decimalNumber)).substring(0, 5);
        return str;
    };
});

Приведенный выше код является примером пользовательского фильтра

Использование числового фильтра, предоставляемого Angular JS, решит вашу проблему, и если вам нужно больше проверок и проверки значения, тогда, как рекомендуется, вы можете создать собственный настраиваемый фильтр с помощью службы $filter Angular JS.

Создайте свой собственный фильтр:

angular.filter('fiveDigits', function() {
    return function(num) {
        var str = ("" + parseFloat(num)).substring(0, 5);
        var lastChar = str[str.length - 1];
        return (lastChar === '.') ? str.substring(0, str.length - 1) : str;
    };
});

И используйте это как любой другой:

{{'1234.0' | fiveDigits}} // => 1234
{{'12345.0' | fiveDigits}} // => 12345
{{'123456.0' | fiveDigits}} // => 12345
Другие вопросы по тегам