2016-03-14 2 views
1

Я пытаюсь создать директиву, которая позволяет мне начинать в 1/100-й столбец суммы в долларах. Например, скажем, что сумма в долларах, которую я хочу отобразить в моей форме, равна 23.76. Я бы начала вводить 2, 3, 7, 6 и по мере ввода, отображаемая сумма будет равна $ 0,02, $ 0,23, $ 2,37, $ 23,76, но мой модуль будет в центах 2376входные директивы центы в доллары

Я собрал codepen, но я столкнулся с проблемой с ведущими нулями. Например, введите сумму, затем удалите ее до 0, и вы увидите, что я имею в виду в поле «Исходное значение», будут конечные нули.

Что я могу сделать, чтобы гарантировать, что если я наберу сумму, необработанное значение останется в центах без начальных нулей?

+0

ты со ссылкой на $ scope.currencyVal; в тебе html? – Kailas

ответ

0

Вы можете попробовать использовать фильтр «number» угловой для этой цели. Добавьте его в HTML, как: {{moneyVal | number}} здесь размер фракции будет 0.

<div class="body" ng-app="myApp"> 
    <div class="wrapper" ng-controller="MyCtrl"> 
    <div class="info">Raw Value: {{moneyVal | number}}</div> 


    <input class="input-phone" type='text' money-input ng-model="moneyVal" /> 
    </div> 
</div> 

Извлекает codepen here.

Примечание: Это решение уровня html уровня/уровня представления.
Надеюсь, это поможет ... :)

+0

Это не то, что мне нужно. Мне нужно, чтобы фактическое значение модели не имело ведущих нулей. –

0

Я продолжал растрескиваться и придумывал это. Это не самый чистый, но он выполняет эту работу.

ngModelCtrl.$parsers.push(function(viewValue) { 
      var value = viewValue.replace(/[^0-9]/g, '') 
      value = $filter('number')(value, 0) 
      value = value.replace(/[^0-9]/g, '') 

      return value 
     }); 

codepen

+0

Хорошо, число фильтр пришел на помощь ... :) – Kailas

+0

Опасайтесь, фильтр числа добавит символ ','. Так что должно получиться что-то вроде 2355 вместо 2345. Надеюсь, это не проблема для вас. – Kailas

+0

Да, поэтому мне пришлось использовать регулярное выражение для удаления нечисловых символов. –

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