Publiqué la misma pregunta en una forma diferente, pero nadie respondió. No obtengo una imagen clara de lo que hacen los formateadores y analizadores en js angular.
Por definición, tanto los Formateadores como los Analizadores se parecen a mí. Tal vez me equivoque, ya que soy nuevo en este angularjs.
Definición de formateadores
Matriz de funciones para ejecutar, como canalización, siempre que cambie el valor del modelo. Cada función se llama, a su vez, pasando el valor a la siguiente. Se utiliza para formatear / convertir valores para mostrarlos en el control y la validación.
Definición de analizadores
Matriz de funciones para ejecutar, como canalización, siempre que el control lea valor del DOM. Cada función se llama, a su vez, pasando el valor a la siguiente. Se utiliza para desinfectar / convertir el valor y la validación. Para la validación, los analizadores deben actualizar el estado de validez usando $ setValidity () y devolver undefined para valores no válidos.
Ayúdame a comprender ambas funciones con un ejemplo sencillo. Se apreciará una simple ilustración de ambos.
(123) 123-1234
un número de teléfono. Los analizadores leen los datos cada vez que cambian y, por lo general, se utilizan para establecer el estado válido $ de la entrada. Los documentos tienen ejemplos de ambos.Respuestas:
Este tema se cubrió muy bien en una pregunta relacionada: ¿Cómo hacer un filtrado bidireccional en AngularJS?
Para resumir:
Aquí hay un ejemplo simple, basado en un ejemplo en la documentación de la api de NgModelController :
Puede verlo en acción: http://plnkr.co/UQ5q5FxyBzIeEjRYYVGX?plnkr=legacy
Cuando escribe un nombre en (vista a modelo), verá que el modelo siempre está en minúsculas. Pero, cuando hace clic en un botón y cambia programáticamente el nombre (modelo para ver), el campo de entrada siempre está en mayúsculas.
fuente
ngModel.$setViewValue(transformedInput);
para configurarlo yngModel.$render();
renderizarlo desde la función $ parsers.$formatters
hago, es inmediatamente revertido por$validators
. ; (Otro uso para los formateadores y analizadores es cuando desea almacenar fechas en hora UTC y mostrarlas en hora local en las entradas, creé la directiva datepicker y el filtro utcToLocal a continuación para esto.
Utiliza este filtro utcToLocal que garantiza que la fecha de entrada esté en el formato correcto antes de convertir a la hora local.
moment.js se usa para convertir fechas locales a utc.
pickadate.js es el complemento datepicker utilizado
fuente