Question

Le ngmodelctrl. $ Les analyseurs sont passés à partir du premier analyseur de la matrice au dernier parseur du tableau, tandis que ngmodelctrl. $ Formatters est exécuté à partir du dernier formateur de la matrice à la première formatrice du tableau.Je me demandais juste la justification derrière cela.

Snippet de Angular.js (V1.2.1):

  ...
  var formatters = ctrl.$formatters,
      idx = formatters.length;

  ctrl.$modelValue = value;
  while(idx--) {
    value = formatters[idx](value);
  }
  ...

Était-ce utile?

La solution

Cela permet de toujours pousser les analyseurs et les formateurs.

Disons que vous ayez un analyseur qui transforme la chaîne entrée en un certain nombre de millisecondes, puis une autre analyse qui transforme les millisecondes en une date.

Vous aurez besoin de formateurs correspondants: un qui transforme une date en nombre de millisecondes et une seconde qui transforme les millisecondes en une chaîne.Avoir les formateurs exécutés dans l'ordre inverse des analyseurs a du sens: vous pouvez simplement faire

ctrl.$parsers.push(stringToMillis);
ctrl.$formatters.push(millisToString);

...

ctrl.$parsers.push(millisToDate);
ctrl.$formatters.push(dateToMillis);

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top