Я ищу способ форматирования элемента input
для форматирования валюты. В частности, я хочу, чтобы запятые там были тысячами.Формат <input> для отображения валюты как пользовательских типов
Исходным решением было просто форматировать значение в контроллере и вернуть его в представление. Но затем, чтобы сделать мои расчеты, я должен все это удалить. Затем я наткнулся на $formatters
и $parsers
для ngModelController
. По сути, это позволяет создавать функции конвейера. Первый форматирует значение для пользователя. Второй анализирует значение, которое будет использоваться в контроллере. Именно то, что я хочу.
Мое решение работает только на странице. Check out my fiddle.
myApp.directive('thousandsformatter', function ($filter) {
return {
require: 'ngModel',
link: function (scope, element, attrs, ctrl) {
ctrl.$formatters.push(function (data) {
var formatted = $filter('currency')(data);
console.log(formatted);
//convert data from model format to view format
return formatted; //converted
});
ctrl.$parsers.push(function (data) {
console.log(data);
//convert data from view format to model format
return data; //converted
});
}
};
});
Как я могу получить это обновление как типы пользователей?
Возможно, вы захотите взглянуть на угловое ui. Я думаю, что у них есть директива для ввода «маски». http://angular-ui.github.io/ui-utils/ –
Вы хотите, чтобы фильтр, в частности, номер один уже урезал запятую и десятичную точку, поэтому это хорошее место для начала. а на самом деле есть валюта тоже http://docs.angularjs.org/api/ng.filter:currency – shaunhusain
Как вы используете фильтр для элемента ввода? Я знаю, как это сделать в привязке к областям {{}} – EnigmaRM