AngularJS - Czy można zmienić wartość atrybutu ngModel na dyrektywę w łączu lub kompilacji?
Próbuję utworzyć dyrektywę, która doda atrybut ngModel do znacznika na podstawie wartości atrybutu. Na przykład:
angular.module('myModule').
directive('myDirective', function() {
return {
link: function(scope, elem, attrs) {
var modelName = 'myPrefix.' + attrs.name;
attrs.$set('ngModel', modelName);
}
};
});
Aby ten html:
<input name="foo" my-directive></input>
jest wkompilowany
<input name="foo" ng-model="myPrefix.foo" my-directive></input>
Przyjmuje nazwę wejścia, dołącza prefiks i ustawia atrybut ngModel na tę wartość.
Kiedy próbuję to zrobić w funkcji łącza, wygląda na toinput
nie jest rejestrowany w formController, więcform.foo
zwraca undefined.
Czy można osiągnąć to, co próbuję zrobić?
EDYTOWAĆ:
Wygląda na tongModel
atrybut jest ustawiany na HTML, ale nie jest rejestrowany w formularzu, lub ngModelController nie jest tworzony. Jeśli spojrzę na wartośćngModel
w zakresie nie zmienia się, gdy modyfikuję dane wejściowe.