2016-07-13 12 views
1

Fragen, gibt es irgendwelche Standard-Parser der Formatierer in Angular 1.x (speziell 1.4.4) (documentation here) zu verstehen, wenn ich in einigen Fällen tun würde, wenn ich neue Handler zu diesen Arrays hinzufügen.Gibt es in Angular 1.x Standard-Parser/Formatter?

Als Dokumentation sagt z.B. Über Parser:

Array von Funktionen, die als Pipeline ausgeführt werden, wenn das Steuerelement Werte aus dem DOM liest.

Ist dieses Array (und Formatierer) anfänglich leer?

Antwort

1

Ja, Sie sollten Parser oder Formatierer unshift hinzuzufügen:

Bother $parsers und $formatters standardmäßig leer sind;

function yourFormat() { 
 
\t return { 
 
\t \t require: 'ngModel', 
 
\t \t link: function ($scope, $elem, $attrs, $ctrl) { 
 
\t \t  var ngModelCtrl = $ctrl; 
 
\t \t \t console.log(ngModelCtrl.$formatters); 
 
\t \t \t console.log(ngModelCtrl.$parsers); 
 

 
\t \t \t console.log("adding parsers and formatters"); 
 

 
\t \t \t ngModelCtrl.$formatters.unshift(function (value) { 
 
\t \t \t \t return value + "+"; 
 
\t \t \t }); 
 

 
\t \t \t ngModelCtrl.$parsers.unshift(function (value) { 
 
\t \t \t \t return value + "-"; 
 
\t \t \t }); 
 

 
\t \t \t console.log(ngModelCtrl.$formatters); 
 
\t \t \t console.log(ngModelCtrl.$parsers); 
 
\t \t } 
 
\t } 
 
} 
 
function YourController() { 
 
    this.yourmodel = {}; 
 
} 
 

 
angular 
 
\t .module('app', []); 
 
angular 
 
\t .module('app') 
 
\t .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>

+0

hallo! Und ** Ist das (und Formatierer) Array zunächst leer? ** – zmii

+0

@zmii Antwort mit Snippet bearbeitet – gyc