Angular JS Custom Directive无法正常工作

时间:2014-10-09 12:12:34

标签: javascript angularjs datepicker

我正在尝试在我的应用中实现指令。以下是代码。

    console.log("Directive loaded");
    angular.module("MyApp")
       .directive("datepickerLocal", function($rootScope) {
       console.log("datepickerLocal");
       return {
          restrict: 'E',
          require: 'ngModel',
          link: function(scope, elem, attr, ctrl) {
          ctrl.$parsers.unshift(function(viewValue) {
            var ngModelController = ctrls[0];
            ngModelController.$parsers.push(function (viewValue) {
               viewValue.setMinutes(viewValue.getMinutes() - viewValue.getTimezoneOffset());
               return viewValue.toISOString().substring(0, 10);
            });
         });
       }
    };
  }
 );

这是HTML文本字段。

    <input id="datepicker" type="text" data-ng-datepicker data-ng-options="datepickerOptions" ng-model="user.User.DateOfBirth" datepickerLocal>

我能够看到第一个控制台消息,但是指令中的控制台消息却没有出现。

非常感谢您的反馈。

1 个答案:

答案 0 :(得分:1)

2件事:

  1. 您将指令限制为E,说它应该被定义为元素,但您将其用作属性。将restrict: "E"更改为AEA,或将其用作:
    1. 在html中使用指令时需要使用驼峰,即:
    2. datepickerLocal错误,应该是:datepicker-local