在angular指令中未定义controller

时间:2016-02-19 06:52:47

标签: angularjs angularjs-directive angularjs-forms

我需要在Angular表单文本字段中对日期字段进行自定义验证。我正在使用angular-ui datepicker元素进行显示。为了验证,我创建了一个名为validatedate的自定义指令,我想在其中编写自定义逻辑。我面临几个问题:

  1. ctrl在指令中未定义。
  2. 每当输入字段发生更改(当前未发生)时,应调用该指令。加载页面时,该指令仅被调用一次。
  3. 我正在添加下面的代码段以供参考。请让我知道我哪里出错了。

    <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 个答案:

没有答案