Контроллер не определен в угловой директиве

Мне нужно иметь пользовательскую проверку для поля даты в текстовом поле моей угловой формы. Я использую angular-ui элемент datepicker для отображения. Для проверки я создал свою специальную директиву под названием validatedate в котором я хочу написать свою собственную логику. Есть несколько проблем, с которыми я сталкиваюсь:

  1. ctrl идет как неопределенный внутри директивы.
  2. Директива должна вызываться каждый раз, когда происходит изменение в поле ввода, которое в данный момент не происходит. Директива вызывается только один раз, когда страница загружается.

Я добавляю фрагмент кода ниже для справки. Пожалуйста, дайте мне знать, где я иду не так.

<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
        }
    };
});

0 ответов

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