为datepicker创建指令,观察模型会触发两次更新

时间:2014-02-09 15:10:34

标签: angularjs datepicker

我试图将Foundation Datepicker包装成Angular指令。这就是我所拥有的:

angular.module('fdatepicker', [])
.directive('fdatepicker', function() {
  return {
    require: 'ngModel',
    link: function (scope, element, attrs, controller) {
      element.fdatepicker('destroy').fdatepicker();
      element.on('blur', function() {
        scope.$apply(function() {
          controller.$setViewValue(element.fdatepicker("getDate"));
        });
      });
    }
  }
});

在我看来,datepicker确实出现了以下代码:

<input type="text" ng-model="start_at" fdatepicker>

在我的控制器中,以下代码:

$scope.$watch("start_at", function() {
  console.log("start_at changed to " + $scope.start_at);
});
使用datepicker选择日期时,

会被触发两次:

// start_at changed to Sun Feb 09 2014 00:00:00 GMT+0100 (CET) 
// start_at changed to 02/04/2014 

我希望只使用date对象通知一次,而不是格式化的值!如何将模型与演示文稿(格式化日期)分离?

0 个答案:

没有答案