Angular 1.6 / DatePicker - 带onChange事件的fire函数

时间:2017-09-07 02:27:16

标签: angularjs datepicker

这是一个干净但遗留代码,我是一个与React& amp; Vue有时但需要一些帮助才能确保准确的语法。

问题:当datePicker值发生变化时,它应该触发一个发出ajax调用的事件,但是没有这样做。

我有一个html表单:

                <td>
                    <input type='text'
                           ng-model='sd.parameters.production_lock_end_date'
                           ng-change='updatePlanningParameters(sd.parameters.id,sd.parameters)' 
                           ng-model-options="{ updateOn: 'blur' }" 
                           data-provide="datepicker" 
                           data-date-format="yyyy-mm-dd" 
                           required>
                </td>

控制器js文件包含:

$scope.updatePlanningParameters = function(itemLocationID, parameters) {
    dataFactory.putItemLocation(itemLocationID, parameters)
        .success(function(data,status) {
            if (status == 200 && data.status == 200 ){
                console.log('Item Location successfully updated.');
            } else if ( status == 200 && data.status != 200 ) {
                console.error('There was some unknown error updating the item location')
            }

        }) 
        .error(function(data,status) {
            console.error('Error getting forecast parameters: ' + error.message);
        });
}

有六个其他元素是普通的文本输入,这一切都很好。当涉及到datePicker时,似乎存在某种时间问题。

我花了半天的时间研究和研究在我看来,解决方案是添加一个$ scope。$ watch类似于这个例子:

$scope.startdate;

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

但我根本无法正确解决语法问题(我甚至不确定这是正确的解决方案;正是我提出的问题)

TIA!

1 个答案:

答案 0 :(得分:0)

您可以尝试这样做: 在上面的沟通环境中,我发布这个,尝试更改datepicker超过1次,看到这将触发,

$scope.$watch('sd.parameters.production_lock_end_date',function(newval,oldval){
//here we can check the value
console.log("newval:"+newval+"oldval: "+oldval);
});