2016-12-28 2 views
1

Я хочу создать директиву, которая будет округлять значения двух цифр после десятичной.Директива Angularjs Округление двух цифр после десятичного числа

Например:

10,456456 должен быть 10,46

10,3633 должна быть 10,34

Это то, что я пытался до сих пор, но это не работает.

marineQuote.directive('roundConverter2', function() { 
    return { 
     restrict: 'A', 
     require: 'ngModel', 
     link: function(scope, elem, attrs, ngModelCtrl) { 
      function roundNumber(input, places) { 
       if (isNaN(input)) return input; 
       var factor = "1" + Array(+(places > 0 && places + 1)).join("0"); 
       return Math.round(input * factor)/factor; 
      } 
      ngModelCtrl.$parsers.push(roundNumber); 
     } 
    }; 
}); 

HTML:

<td><input type="text" name="claimsLR1" ng-disabled="true" 
    ng-model="premiumCalculations.percentage1" round-converter2=''></td> 
+0

Пожалуйста, отформатируйте ваш код и заполните свое сообщение. – vjarysta

+0

http://stackoverflow.com/a/35514325/796400 –

+0

Какой результат вы получаете в настоящее время? Что означает «не работает», точно? – halfer

ответ

1

Попробуйте это:

return { 
    restrict: 'A', 
    require: 'ngModel', 
    link: function(scope, elem, attrs, ngModelCtrl) { 
     function roundNumber(input, places) { 
      if (isNaN(input)) return input; 
      return parseFloat(input).toFixed(2); 
     } 
     ngModelCtrl.$parsers.push(roundNumber); 
    } 
}; 

Надеется, что это будет работать для вас.

Смежные вопросы