angularjs valider la saisie et à empêcher les changements non valide si

Je neeed un champ de saisie où je peux entrer uniquement les valeurs 1, 2 ou 3, donc je suis en train de construire une directive qui empêche toutes les modifications apportées au modèle, s'il ne correspond pas à ces valeurs.

par exemple, la valeur est 1 et je le change pour 5 il convient de toujours 1.

J'ai mis en place un petit violon http://jsfiddle.net/kannix/Q5YKE/ mais il s'agit probablement d'une erreur d'utiliser le $analyseurs.

app.directive('myvalidator', function () {
    return {
        require: 'ngModel',
        link: function (scope, elm, attrs, ctrl) {
            var validValues = [1,2,3];
            ctrl.$parsers.push(function (value) {
                if (validValues.indexOf(value) === -1){
                    //what to do here? should refuse wrong value and leave the old one
                }   
            });
        }
    }   

})

OriginalL'auteur kannix | 2013-08-14