Uma diretiva em AngularJS (1.x) para criar máscaras de valores monetários em campos de formulários
** For English
, click here **
$ npm install angular-money-mask --save
ou
$ bower install angular-money-mask --save
<script src="rw-money-mask.min.js"></script>
angular.module('seuApp', ['rw.moneymask'])
<input type="text" name="preco" ng-model="model.preco" money-mask />
Obs: É obrigatório o uso da diretiva ngModel!
- Precisa ser um
Number
válido do Javascript. Ex.:100
(R$ 100,00),4.20
(R$ 4,20),4340.65
(R$ 4.340,65) - Ele mantém o valor do model como um número. Somente a exibição do campo é formatada.
- Exibe o valor do model formatado conforme o usuário digita
- Ele só permitirá a digitação de números. Toda vez que um número é inserido, o valor atualiza.
- Usa
$filter('number')
, que usa a configuração$locale.NUMBER_FORMATS
(separadores, tamanho de fração, etc) então é compatível com i18n.
Use money-mask-prepend
e money-mask-append
para adicionar texto antes ou depois do valor formatado.
<input type="text" name="preco" ng-model="model.preco" money-mask money-mask-prepend="R$" />
ou
<input type="text" name="preco" ng-model="model.preco" money-mask money-mask-append="reais" />
- Contribuições no código são benvindas. Faça um fork e mande um pull request!
- Revisões deste documento ou do README em inglês são mas do que benvindas :)