Есть директива
app.directive('myMask', function($timeout, $rootScope) {
var directive = {
restrict: 'AEC',
require: 'ngModel',
link: function(scope, element, attrs, ngModelCtrl) {
var isWithAutoUnMask = true;
isWithAutoUnMask = !attrs.hasOwnProperty('withoutunmask');
var maskFF = attrs.myMask;
if (maskFF) {
$timeout(function() {
$(element).inputmask({
mask: maskFF,
autoUnmask: isWithAutoUnMask,
showMaskOnFocus: true,
placeholder: " ",
definitions: {
'*': {
validator: "[0-9]",
cardinality: 1,
casing: "lower",
placeholder: "_"
},
'd': {
validator: "[0-9]",
cardinality: 1,
casing: "lower",
placeholder: " "
}
}
}).on('keyup paste', function() {
if ($(element).inputmask("isComplete")) {
ngModelCtrl.$setValidity('isComplete', true)
} else {
ngModelCtrl.$setValidity('isComplete', false)
}
var clearValue = $(element).val()
ngModelCtrl.$setViewValue(clearValue);
ngModelCtrl.$render();
})
}, 10);
}
}
}
return directive
});
есть строка ввода
<input class="form-field" id="id_phone" ng-model="loginForm.loginPhone" my-mask="+7 (ddd) ddd dd dd" name="phone" placeholder="телефон" type="text" focus_onend />
Если я ввожу номер телефона 9281234567 с клавиатуры - все ок. Интуитивно после +7 набираем код, затем телефон.. Отображается +7(928)123-45-67, в модели получаю 9281234567
Но если вставляю +79281234567 (просто вставляю скопированный номер телефона), либо если срабатывает автодополнение - отображается +7 (792) 812 34 56, в модели получаю 7928123456
Что мне сделать, чтобы номер и набирался и вставлялся корректно?