angularjs - ngmask - ¿Cómo obtengo la fecha enmascarada en el modelo de la entrada en angular usando ui-mask?
ngx mask angular 2 (3)
Tengo una vista que requiere que el usuario ingrese su fecha de nacimiento en un cuadro de texto.
Estoy usando la directiva de máscara de UI-Utils.
Mi vista tiene este elemento de entrada en él:
<input ui-mask="99/99/9999" placeholder="MM/DD/YYYY" type="text" name="uBirthdate" ng-model="user.birthdate" required/>
y en mi controlador tengo el alcance configurado como
myApp.controller(''HomeCtrl'', function ($scope, myService){
$scope.user = registerService.getCurrentUser();
$scope.submit = function () {
//do something with $scope.user.birthdate
};
}
});
Mi problema es que en mi controlador, la propiedad fecha de nacimiento contiene el valor de la entrada SIN los caracteres de máscara, por lo que una entrada de
11/20/1980
en la vista se convierte en 11201980
como una propiedad en el alcance $
¿Cómo puedo asegurarme de tener una fecha enmascarada válida para trabajar en mi controlador? Solo para su información, esta fecha se enviará como JSON en una solicitud POST a mi servidor.
Actualice a la última ui angular y use la siguiente sintaxis
ui-mask="99/99/9999" model-view-value="true"
El valor-vista-modelo mantendrá la máscara en su objeto modelo.
como una cuerda:
var string = ''11201980'';
var month = string.substring(0,2);
var day = string.substring(2,4);
var year = string.substring(4,8);
var birthday = month + ''/'' + day + ''/'' + year;
entonces, como fecha:
var birthdate = new Date(birthday);
prueba este https://github.com/candreoliveira/ngMask ayuda completa para toda la máscara