Reputation: 4277
Wondering are there any default parsers of formatters in Angular 1.x (specifically 1.4.4) (documentation here) to understand if I should do unshift
in some cases when I add new handler to those arrays.
As documentation says e.g. about parsers:
Array of functions to execute, as a pipeline, whenever the control reads value from the DOM.
Is this (and formatters) array initially empty?
Upvotes: 1
Views: 80
Reputation: 4360
Yes, you should unshift to add parsers or formatters:
Bother $parsers
and $formatters
are empty by default;
function yourFormat() {
return {
require: 'ngModel',
link: function ($scope, $elem, $attrs, $ctrl) {
var ngModelCtrl = $ctrl;
console.log(ngModelCtrl.$formatters);
console.log(ngModelCtrl.$parsers);
console.log("adding parsers and formatters");
ngModelCtrl.$formatters.unshift(function (value) {
return value + "+";
});
ngModelCtrl.$parsers.unshift(function (value) {
return value + "-";
});
console.log(ngModelCtrl.$formatters);
console.log(ngModelCtrl.$parsers);
}
}
}
function YourController() {
this.yourmodel = {};
}
angular
.module('app', []);
angular
.module('app')
.directive('yourFormat', yourFormat)
.controller('YourController', YourController);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script>
<div ng-app="app">
<form ng-controller="YourController as c">
<your-format ng-model="c.yourmodel"></your-format>
</form>
</div>
Upvotes: 1