我在使用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 !!
答案 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">