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.

questionAnswers(2)

yourAnswerToTheQuestion