Comment mettre à jour ngModel $model value est utilisée, basée sur la somme de viewValue mise à jour par l'utilisateur

Dire que j'ai la directive suivante:

myApp.directive('myDirective', function() {
    return {
        restrict: 'A',
        require: 'ngModel',
        scope: {
            ngModel: '='
        },
        link: function(scope, elem, attrs, ngModelCtrl) {
            scope.$watch('ngModel', function() {
                ngModelCtrl.$modelValue = 'foo';
            });
        }
    }
}); 

Et le code html suivant:

<input ng-model="name" my-directive></input>

Fondamentalement, chaque fois que l'utilisateur modifie l'entrée, my-directive, l'idéal serait de changer le modèle interne de la valeur "toto", tout en laissant le point de vue de la valeur intacte.

Mais quand j'imprime $scope.name dans le contrôleur correspondant, il n'a pas de journal "foo", il enregistre tout ce que l'utilisateur est entré.

Il semblerait que ngModelCtrl.$modelValue n'est pas ce que le contrôleur d'accès -- suis-je aborder ce problème de façon incorrecte?

(Aussi regarder la ngModel dans le champ d'application se sent vraiment mal, mais je ne suis pas sûr de toute autre manière. Toutes les suggestions seront très appréciés!)

Au lieu de regarder la ngModel vous pouvez utiliser $viewChangeListeners qui est spécifiquement conçu à cet effet. Mais pourquoi voulez-vous définir $modelValue différente de la viewValue?
J'aimerais que les utilisateurs soient en mesure d'entrer dans délimitée par des virgules de données, mais avoir le modèle sous-jacent de stocker les informations dans un tableau.
De cette façon? plnkr.co/modifier/pWpnup?p=preview
Wow, vous êtes génial, merci beaucoup!
Même que Cody (ci-dessus), je dois analyser un type="tel" et de fournir un $viewValue masque tout en préservant la $modelValue comme un entier.

OriginalL'auteur Cody | 2014-10-03