Элементарная задача: сделать валидацию поля только после blur-события:
app.directive("q", function () {
return {
require: "ngModel",
link: function ($scope, elem, attrs, ctrl) {
elem.on('blur', function(event) {
ctrl.$parsers.unshift(function(val) {
if (val == 'ololo') {
ctrl.$setValidity("q", false);
return undefined;
} else {...}
});
});
}
};
});
Функция, добавленная в ctrl.$parsers никогда не отрабатвает. Подозреваю, что это из-за того, что коллбек, навешаный на blur отрабатывает не в "основном цикле приложения" или как-то так. Вызов таинственных apply и digest не помогли.
Как же заставить работать эту адскую машину?