AngularJS - Kann der Wert des Attributs ngModel in der Direktive in link oder compile geändert werden?

Ich versuche, eine Direktive zu erstellen, die einem Tag basierend auf dem Attributwert ein ngModel-Attribut hinzufügt. Zum Beispiel:

angular.module('myModule').
  directive('myDirective', function() {
    return {
      link: function(scope, elem, attrs) {
        var modelName = 'myPrefix.' + attrs.name;
        attrs.$set('ngModel', modelName);
      }
    };
  });

Damit dieses HTML:

<input name="foo" my-directive></input>

wird kompiliert in

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

Es übernimmt den Namen der Eingabe, fügt ein Präfix hinzu und setzt das ngModel-Attribut auf diesen Wert.

Wenn ich dies in der Link - Funktion versuche, scheint es wie dieinput wird nicht mit dem formController registriert, so dassform.foo gibt undefiniert zurück.

Ist es möglich zu erreichen, was ich versuche zu tun?

BEARBEITEN:

Es scheint wie dasngModel Das Attribut wird für den HTML-Code festgelegt, aber nicht für das Formular registriert, oder der ngModelController wird nicht instanziiert. Wenn ich mir den Wert vonngModel Im Bereich ändert sich nichts, wenn ich die Eingabe ändere.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage