Angular JS自定义指令不起作用

Angular JS Custom Directive not Working

本文关键字:不起作用 指令 自定义 JS Angular      更新时间:2023-09-26

我正在尝试在我的应用程序中实现一个指令。这是以下代码。

    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. 您将指令限制为E,说它应该定义为一个元素,但您将它用作一个属性。将restrict: "E"更改为AEA,或者使用如下方式:

  1. 在html中使用指令时,需要使用大小写,即:

datepickerLocal错误,应为:datepicker-local