formatted-amount displays "-.--" when it does not have a value.
This commit is contained in:
parent
29a5a37c02
commit
12aa9a3b18
1 changed files with 39 additions and 17 deletions
|
|
@ -60,46 +60,68 @@ angular.module('bitcoincom.directives')
|
||||||
if (decimalPlaces['8'].indexOf(currency.toUpperCase()) > -1) return '8';
|
if (decimalPlaces['8'].indexOf(currency.toUpperCase()) > -1) return '8';
|
||||||
return '2';
|
return '2';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var getDecimalSeparator = function() {
|
||||||
|
var testNum = 1.5;
|
||||||
|
var testString = testNum.toLocaleString(uxLanguage.getCurrentLanguage());
|
||||||
|
// Some environments let you set decimal separators that are more than one character
|
||||||
|
var separator = /^1(.+)5$/.exec(testString)[1]
|
||||||
|
return separator;
|
||||||
|
};
|
||||||
|
|
||||||
var formatNumbers = function(currency, value) {
|
var formatNumbers = function(currency, value) {
|
||||||
if (isNaN(parseFloat($scope.value))) {
|
|
||||||
buildAmount('', '', '');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
var parsed = parseFloat(value);
|
||||||
|
var valueFormatted = '';
|
||||||
|
var valueProcessing = '';
|
||||||
switch (getDecimalPlaces(currency)) {
|
switch (getDecimalPlaces(currency)) {
|
||||||
case '0':
|
case '0':
|
||||||
var valueFormatted = localizeNumbers(Math.round(parseFloat(value)));
|
if (isNaN(parsed)) {
|
||||||
buildAmount(valueFormatted, '', '');
|
buildAmount('-', '', '');
|
||||||
|
} else {
|
||||||
|
valueFormatted = localizeNumbers(Math.round(parsed));
|
||||||
|
buildAmount(valueFormatted, '', '');
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '3':
|
case '3':
|
||||||
var valueProcessing = parseFloat(parseFloat(value).toFixed(3));
|
if (isNaN(parsed)) {
|
||||||
var valueFormatted = localizeNumbers(valueProcessing, 3);
|
buildAmount('-' + getDecimalSeparator() + '---', '', '');
|
||||||
buildAmount(valueFormatted, '', '');
|
} else {
|
||||||
|
valueProcessing = parsed.toFixed(3);
|
||||||
|
valueFormatted = localizeNumbers(valueProcessing, 3);
|
||||||
|
buildAmount(valueFormatted, '', '');
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '8':
|
case '8':
|
||||||
var valueFormatted = parseFloat(value).toFixed(8);
|
if (isNaN(parsed)) {
|
||||||
if (parseFloat(value) == 0) {
|
buildAmount('-' + getDecimalSeparator() + '---', '', '');
|
||||||
|
} else if (parsed === 0) {
|
||||||
buildAmount('0', '', '');
|
buildAmount('0', '', '');
|
||||||
} else {
|
} else {
|
||||||
var valueFormatted = localizeNumbers(valueFormatted, 8);
|
valueFormatted = parsed.toFixed(8);
|
||||||
|
valueFormatted = localizeNumbers(valueFormatted, 8);
|
||||||
var start = valueFormatted.slice(0, -5);
|
var start = valueFormatted.slice(0, -5);
|
||||||
var middle = valueFormatted.slice(-5, -2);
|
var middle = valueFormatted.slice(-5, -2);
|
||||||
var end = valueFormatted.substr(valueFormatted.length - 2);
|
var end = valueFormatted.substr(valueFormatted.length - 2);
|
||||||
buildAmount(start, middle, end);
|
buildAmount(start, middle, end);
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default: // 2
|
||||||
var valueProcessing = parseFloat(parseFloat(value).toFixed(2));
|
if (isNaN(parsed)) {
|
||||||
var valueFormatted = localizeNumbers(valueProcessing, 2);
|
buildAmount('-' + getDecimalSeparator() + '--', '', '');
|
||||||
buildAmount(valueFormatted, '', '');
|
} else {
|
||||||
|
valueProcessing = parseFloat(parsed.toFixed(2));
|
||||||
|
valueFormatted = localizeNumbers(valueProcessing, 2);
|
||||||
|
buildAmount(valueFormatted, '', '');
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
formatNumbers($scope.currency, $scope.value);
|
formatNumbers($scope.currency, $scope.value);
|
||||||
$scope.$watchGroup(['currency', 'value'], function() {
|
$scope.$watchGroup(['currency', 'value'], function() {
|
||||||
formatNumbers($scope.currency, $scope.value);
|
formatNumbers($scope.currency, $scope.value);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue