Контроллер не определен в угловой директиве
Мне нужно иметь пользовательскую проверку для поля даты в текстовом поле моей угловой формы. Я использую angular-ui
элемент datepicker для отображения. Для проверки я создал свою специальную директиву под названием validatedate
в котором я хочу написать свою собственную логику. Есть несколько проблем, с которыми я сталкиваюсь:
-
ctrl
идет как неопределенный внутри директивы. - Директива должна вызываться каждый раз, когда происходит изменение в поле ввода, которое в данный момент не происходит. Директива вызывается только один раз, когда страница загружается.
Я добавляю фрагмент кода ниже для справки. Пожалуйста, дайте мне знать, где я иду не так.
<p class="input-group">
<input type="text" class="form-control" name="enable_dt" uib-datepicker-popup="{{format}}"
ng-model="enable_dt" is-open="datepickers.enable_dt" min-date="minDate" max-date="maxDate"
datepicker-options="dateOptions" validatedate
close-text="Close" ng-requied="maintainanceForm.enable_dt"/>
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="open($event,'enable_dt')">
<i class="glyphicon glyphicon-calendar"></i></button>
</span>
validatedate
директива:
'use strict';
angular.module('myApp')
.directive('validatedate', function() {
return {
require: 'ngModel',
link: function(scope, elm, attrs, ctrl) {
console.log(scope.enable_dt);
console.log(ctrl); //ctrl is undefined
}
};
});