2014-10-09 103 views
0

我想在我的应用程序中实现一个指令。这是下面的代码。Angular JS Custom Directive not working

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> 

我能看到的第一个控制台消息,但howeven指令内的控制台消息没有出现。

反馈将不胜感激。

回答

1

两件事:

  1. 傻冒限制指令E,称它应该被定义为一个元素,但你使用它的属性。要么改变restrict: "E"AEA,或者使用它像:

  • 指令需要是骆驼在HTML中使用时套管,即:
  • datepickerLocal是错的,应该是:datepicker-local

    +0

    谢谢.. datepicker-local是我应该认识但忽视的东西。 – LS2 2014-10-10 07:12:04