带有$ watchGroup的AngularJS datefilter

时间:2015-01-26 14:12:04

标签: javascript angularjs

我的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表达式上做错了吗?

1 个答案:

答案 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值。

AngularJS API