Angular datepicker不会触发ng-change

时间:2017-02-19 04:21:48

标签: javascript angularjs

我在使用ng-change的datepicker中遇到问题。当我通过“点击日期”更改值时,ng-change事件没有触发,但是当我通过“键入日期”更改值时工作。

这是我的代码。

<input ng-change="date_change();" ng-model="date_to" id="recon-date" name= "date_to" type="text" class="form-control" date-time view="month" auto-close="true" min-view="month" format="MM-DD-YYYY">

我通过调查datepicker.js来追踪问题。我发现(如果我是正确的)ngModelController.serViewValue()和$ render()没有触发ng-change。

我尝试添加范围。$ apply()但没有运气。我正在调试这几个小时但仍没有进展。

P.S。我不想使用$ scope。$ watch()来解决这个问题。

Thankss !!

3 个答案:

答案 0 :(得分:2)

使用$apply,这可以帮助您。

var scope=angular.element($('#recon-date')).scope();    
scope.$apply(); 

答案 1 :(得分:1)

如果没有 ng-change ,请使用 watch

$scope.date_to;

$scope.$watch("date_to", function(newValue, oldValue) {
    console.log("I've changed : ", to date);
});

答案 2 :(得分:0)

这是因为您在输入中使用type="text"尝试将其更改为type="date",然后点击date时会触发。

试试这个

<input ng-change="date_change();" ng-model="date_to" id="recon-date" name= "date_to" type="date" class="form-control" date-time view="month" auto-close="true" min-view="month" format="MM-DD-YYYY">