AngularJS navigateur remplissage automatique de la solution en utilisant une directive

Lors de la soumission d'un formulaire dans AngularJS et d'utiliser le navigateur de mémoriser le mot de passe de la fonctionnalité, et lors d'une tentative de connexion vous laisser le navigateur de remplir le formulaire de connexion avec le nom d'utilisateur et le mot de passe, le $scope modèle ne sera pas modifié sur la base de remplissage automatique.

La seule sale hack que j'ai trouvé est d'utiliser la directive suivante:

app.directive("xsInputSync", ["$timeout" , function($timeout) {
    return {
        restrict : "A",
        require: "?ngModel",
        link : function(scope, element, attrs, ngModel) {
            $timeout(function() {
                if (ngModel.$viewValue && ngModel.$viewValue !== element.val()) {
                    scope.apply(function() {
                        ngModel.$setViewValue(element.val());
                    });
                }
                console.log(scope);
                console.log(ngModel.$name);
                console.log(scope[ngModel.$name]);
            }, 3000);
        }
    };
}]);

Le problème est que le ngModel.$setViewValue(element.val()); ne change pas le modèle ni la vue basée sur la element.val() la valeur retournée. Comment puis-je le réaliser?

Ce code semble correct à première vue... mais où est le reste (balisage, etc)? Avez-vous un violon ou plunk nous pouvons voir?
Voici le plunk: plnkr.co/modifier/CHrBAVU9Ycl2ex2DRr6R je ne sais pas si il fonctionne directement sur plunker parce qu'il fonctionne dans un iframe.
Vous n'avez pas besoin à portée.$appliquer à l'intérieur angulaire de $timeout. Vous pourriez en avoir besoin à l'intérieur de fenêtre native.setTimeout. Mais c'est une bonne idée d'utiliser angulaire.
Il y a un "officiel" polyfill fix Angulaires dev tbosch pour ce problème. Veuillez voir les détails dans la réponse stackoverflow.com/a/25687396/3009639 ci-dessous.
Malheureusement, les "officiels" fix est abandonware et ne fonctionne pas dans la plupart des navigateurs. Les questions ont été déposés, mais ne sont pas pris en compte jusqu'à la recherche continue...

OriginalL'auteur lucassp | 2013-02-19