Angular JS – Как я могу получить ngModelController по имени модели?

В моей пользовательской директиве мне нужно обновить действительность другого ввода. Директива выглядит примерно так:
<customDirective="foo">, в которой значение foo — это имя другой модели ngModel.

В моей директиве я могу получить его модель:
var foo = scope[attrs.foo];.

Но как я могу получить его ngModelController, чтобы установить его действительность? Вот так: fooModelController.$setValidity('customDirective', true);

РЕДАКТИРОВАТЬ :

В html ввод определяется как:

<input type="text" name="dateDebut" id="dateDebut" class="form-control" ng-model="formData.dateDebut" customDirective="dateFin" required>
<input type="text" name="dateFin" id="dateFin" class="form-control" ng-model="formData.dateFin" customDirective="dateDebut" required>

Я получаю узел dom через angular.element.find(document.querySelctor('#dateDebut'));


person Qianyue    schedule 16.03.2015    source источник
comment
Зачем вам это нужно? Вы, скорее всего, что-то неправильно подходите. Если вы дали более широкий контекст, возможно, мы сможем указать вам правильное направление.   -  person New Dev    schedule 16.03.2015
comment
@NewDev Здравствуйте, у меня есть два ввода дат, начало и конец. Я хотел бы проверить, проходит ли интервал 1 неделю или нет. Если он действителен, оба ввода должны стать действительными.   -  person Qianyue    schedule 16.03.2015
comment
$el.controller('ngModel') предоставит вам ngModelController для $el, где $el — это ссылка на узел dom, для которого указан атрибут ng-model.   -  person Vinay K    schedule 16.03.2015
comment
Вероятно, самым элегантным способом было бы создать пользовательскую директиву ввода, которая поддерживает ng-model: <date-range ng-model="dateRangeObj"></date-range>, и использовать 2 отдельных ввода в своем шаблоне. Другой более дешевый подход — использовать ng-form для двух входов, что будет недействительным, если один из входов недействителен.   -  person New Dev    schedule 16.03.2015
comment
@NewDev Спасибо за ваше предложение, но оба предложения кажутся мне сложными. Потому что у меня есть другие директивы на эти входные данные.   -  person Qianyue    schedule 16.03.2015
comment
@VinayK Я получаю неопределенное исключение при вызове $el.controller('ngModel')   -  person Qianyue    schedule 16.03.2015
comment
$el должен быть ссылкой jqlite/jquery. Можете ли вы показать код, где определяется ng-model=foo?   -  person Vinay K    schedule 16.03.2015
comment
@VinayK, пожалуйста, посмотрите мое обновление   -  person Qianyue    schedule 16.03.2015
comment
Дубликат stackoverflow. ком/вопросы/20982751/   -  person Dreamwalker    schedule 16.03.2015
comment
@Dreamwalker Это не совсем тот же сценарий. В этом вопросе он контролирует только один вход.   -  person Qianyue    schedule 16.03.2015


Ответы (1)


angular.element(document.querySelctor('#dateDebut')).controller('ngModel') -- это даст ngModelController, определенный для элемента #dateDebut.

Вот plnkr: http://plnkr.co/edit/qXyxEb2QHyhuRUttNMXn?p=preview

person Vinay K    schedule 16.03.2015