/ / angularjs: campo de formulário de acesso dentro da diretiva - javascript, angularjs, angularjs-directive, angularjs-ng-form

angularjs: campo de formulário de acesso dentro da diretiva - javascript, angularjs, angularjs-directive, angularjs-ng-form

Eu tenho uma diretiva barFoo que tem o seguinte modelo:

<div>
....
<input ng-model="data">
</div>

Esta diretiva é usada dentro de um formulário! Agora, dentro desta diretiva eu ​​quero fazer coisas como

element.find("input").$setValidity("bar-valid", false);

No entanto, isso não funciona. Além disso, o campo de entrada não tem um nome atributo. Existe alguma maneira de fazer isso sem um atributo "name"?

UPDATE: Uma outra solução é definir ngModel no elemento diretivo

<bar-foo ng-model="data.value"></bar-foo>

E reescreva a diretiva da seguinte forma

....
.directive("barFoo", function () {
return {
require: "ngModel",
...
link: function (scope, element, attrs, ctrl) {
ctrl.$setValidity("bar-valid", false);
}
});

Respostas:

1 para resposta № 1

Dê uma olhada nesta questão: Diretiva de Validação de Formulário AngularJS $ setValidity on element

Eu vou te dar exatamente o que você precisa, incluindo código


1 para resposta № 2

Você pode chamar uma diretiva com o nome = "itAmazingName" e usá-lo no modelo de diretiva, que deve resolver seus problemas