这是一个干净但遗留代码,我是一个与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!
答案 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);
});