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" и использовать ее в шаблоне директивы, который должен решить ваши проблемы

Другие вопросы по тегам