Ответ 1
Обновите до последнего angular -ui и используйте следующий синтаксис
ui-mask="99/99/9999" model-view-value="true"
Значение model-view будет сохранять маску на объекте модели.
У меня есть представление, которое требует, чтобы пользователь вводил дату рождения в текстовое поле.
Я использую директиву маски из UI-Utils.
В моем представлении есть этот элемент ввода:
<input ui-mask="99/99/9999" placeholder="MM/DD/YYYY" type="text" name="uBirthdate" ng-model="user.birthdate" required/>
и в моем контроллере у меня есть область, настроенная как
myApp.controller('HomeCtrl', function ($scope, myService){
$scope.user = registerService.getCurrentUser();
$scope.submit = function () {
//do something with $scope.user.birthdate
};
}
});
Моя проблема в том, что в моем контроллере свойство birthdate содержит значение от входа БЕЗ маскирующих символов, поэтому вход
11/20/1980
в представлении становится 11201980
как свойство в $scope
Как я могу убедиться, что у меня есть действительная дата маскировки для работы с моим контроллером? Только FYI, эта дата будет отправлена как JSON в запросе POST на мой сервер.
Обновите до последнего angular -ui и используйте следующий синтаксис
ui-mask="99/99/9999" model-view-value="true"
Значение model-view будет сохранять маску на объекте модели.
попробуйте этот https://github.com/candreoliveira/ngMask help full для всей маски
как строка:
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;
затем, в качестве даты:
var birthdate = new Date(birthday);