我的Angular UI-Calendar需要一些日期戳格式,例如2个日历实例。为了捕捉日期变化,我使用了watchGroup,因为这两个日历需要相同类型的格式。最后,我不能像每个日历的两个单独的$ watch一样:
$scope.$watchGroup(['dt_start', 'dt_end'], function(mydate) {
newdate = $filter('date')(mydate, "dd/MM/yyyy");
console.log(newdate);
});
输出: [2015年1月2日星期五00:00:00 GMT + 0100(欧洲标准时间),...]
分开$ watch的:
$scope.$watch('dt_start', function(mydate) {
newdate = $filter('date')(mydate, "dd/MM/yyyy");
console.log(newdate);
});
$scope.$watch('dt_end', function(mydate) {
newdate = $filter('date')(mydate, "dd/MM/yyyy");
console.log(newdate);
});
我得到一个dd / MM / yyyy。我在watchgroup表达式上做错了吗?
答案 0 :(得分:1)
$ watchGroup将两个数组和范围作为参数
$scope.$watchGroup(['dt_start', 'dt_end'], function(newValues, oldValues, scope) {
if (newValues[0] !== undefined) {
var newStartDate = $filter('date')(newValues[0], "dd/MM/yyyy");
console.log(newStartDate);
}
if (newValues[1] !== undefined) {
var newEndDate = $filter('date')(newValues[1], "dd/MM/yyyy");
console.log(newEndDate);
}
});
您应该检查任何undefined
值。