AngularJS datepicker ui-date错误更新

时间:2013-06-17 16:16:53

标签: angularjs angular-ui

双向数据绑定似乎导致对该字段的错误更新。单击该字段可以提高日期选择器,但如果您尝试通过直接键入日期来编辑该字段,则它不能正常工作。

以下是演示此问题的小提琴:http://jsfiddle.net/vSNJF/

<input type="text" ng-model="name" ui-date-format='m/d/yy' ui-date>

将Angular下的键盘编辑与此处的标准jquery UI日期选择器行为进行比较:http://jqueryui.com/datepicker/

如果在解除交互式日历之后,如何才能使ui-date延迟更新模型?

1 个答案:

答案 0 :(得分:1)

你在那里有一个很大的指令,我不确定是否有人会通过整个代码来找出导致问题的原因。为了帮助我留下一个更简单的datepicker指令,其行为与Jquery UI完全相同,但没有您在其中实现的所有功能,也许如果从这一点开始并添加功能,则更容易调试问题。

指令是:

directive('datepicker', function() {
    return {
        restrict: 'A',
        require : 'ngModel',
        link : function (scope, element, attrs, ngModelCtrl) {
            $(function(){
               element.datepicker({
                    dateFormat:'dd/mm/yy',
                    onSelect:function (date) {
                        ngModelCtrl.$setViewValue(date);
                        scope.$apply();
                    }
                });
            });
        }
    }
}); 

这是关于它的Plunkerblog post