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.