Удаление десятичной точки в пределе для функции в 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