Jquery日期选择器不适用于Firefox中的角度指令ng-model

时间:2013-08-22 06:05:07

标签: firefox angularjs angular-ui

我使用简单的HTML5日期控件,它与ng-model指令绑定,这是我的代码;

<input type="date" datepicker id="NextServiceDate" name="NextServiceDate" ng-model="product.NextServiceDate" />

我注意到一件事,如果我没有使用ng-model绑定日期控制,那么jquery日期选择器工作正常,但在与ng-model绑定后,它首次设置日期但是当我尝试更新日期时,然后它没有调用日期选择器。

请告诉我如何在Firefox中实现此功能。

我也为它创建了一个指令,但是当我的输入类型是'Date'时它也没有被调用。输入类型“text”可以正常工作。

One23SRCApp.directive('datepicker', function () {
    return {
        require: 'ngModel',
        link: function (scope, el, attr, ngModel) {
            $(el).datepicker({
                onSelect: function (dateText) {
                    scope.$apply(function () {
                        var expression = attr.ngModel + " = " + "'" + dateText + "'";
                        scope.$apply(expression);
                    });
                }
            });
        }
    };
});

1 个答案:

答案 0 :(得分:0)

您不需要这样做:

$(el).datepicker(...);

您可以直接在指令链接函数中获取DOM元素(代码中的参数“el”)。

我不确定你在这做什么:

var value = "";

它只被调用一次而不是在进一步更新之后,这主要是因为当页面首次加载时,angular会触发所有观察者(即调用$digest())。