Angular JS - 如何通过模型名称获取 ngModelController?
Angular JS - How can I get the ngModelController by its model name?
在我的自定义指令中,我需要更新另一个输入的有效性。该指令是这样的:
<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>
我通过 angular.element.find(document.querySelctor('#dateDebut'))
;
得到 dom 节点
angular.element(document.querySelctor('#dateDebut')).controller('ngModel')
-- 这将给出在 #dateDebut
元素上定义的 ngModelController
。
这里是plnkr:http://plnkr.co/edit/qXyxEb2QHyhuRUttNMXn?p=preview
在我的自定义指令中,我需要更新另一个输入的有效性。该指令是这样的:
<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>
我通过 angular.element.find(document.querySelctor('#dateDebut'))
;
angular.element(document.querySelctor('#dateDebut')).controller('ngModel')
-- 这将给出在 #dateDebut
元素上定义的 ngModelController
。
这里是plnkr:http://plnkr.co/edit/qXyxEb2QHyhuRUttNMXn?p=preview