angularjs: поле доступа внутри директивы
У меня есть директива barFoo, которая имеет следующий шаблон:
<div>
....
<input ng-model="data">
</div>
Эта директива используется внутри формы! Теперь внутри этой директивы я хочу сделать что-то вроде
element.find('input').$setValidity('bar-valid', false);
Тем не менее, это не работает. Также поле ввода не имеет атрибута name. Есть ли способ сделать это без атрибута name?
ОБНОВЛЕНИЕ: Другое решение состоит в том, чтобы определить ngModel на элементе директивы
<bar-foo ng-model="data.value"></bar-foo>
И переписать директиву следующим образом
....
.directive('barFoo', function () {
return {
require: 'ngModel',
...
link: function (scope, element, attrs, ctrl) {
ctrl.$setValidity('bar-valid', false);
}
});
2 ответа
Решение
Посмотрите на этот вопрос: Директива проверки формы AngularJS $setValidity для элемента
Я дам вам именно то, что вам нужно, включая код
Вы можете вызвать директиву с именем ="itAmazingName" и использовать ее в шаблоне директивы, который должен решить ваши проблемы