AngularJS - É possível alterar o valor do atributo ngModel na diretiva no link ou compilar?
Eu estou tentando criar uma diretiva que irá adicionar um atributo ngModel a uma marca com base no valor do atributo. Por exemplo:
angular.module('myModule').
directive('myDirective', function() {
return {
link: function(scope, elem, attrs) {
var modelName = 'myPrefix.' + attrs.name;
attrs.$set('ngModel', modelName);
}
};
});
Para que este html:
<input name="foo" my-directive></input>
é compilado em
<input name="foo" ng-model="myPrefix.foo" my-directive></input>
Ele pega o nome da entrada, anexa um prefixo e define o atributo ngModel para esse valor.
Quando tento fazer isso na função de link, parece que oinput
não está sendo registrado com o formController, de modo queform.foo
retorna indefinido.
É possível realizar o que estou tentando fazer?
EDITAR:
Parece que ongModel
atributo está sendo definido no HTML, mas não está sendo registrado com o formulário, ou o ngModelController não está sendo instanciado. Se eu olhar para o valor dengModel
no escopo, ele não muda quando modifico a entrada.