从一个datepicker字段复制到另一个时,日期未被格式化

时间:2014-10-02 11:12:37

标签: angularjs angular-ui-bootstrap bootstrap-datepicker angularjs-bootstrap

我最近从Angular 1.2.5迁移到最新版本1.3-rc.3,从ui-bootstrap 0.7.0迁移到ui-bootstrap 0.11.2,我的代码中断了一些功能

我在一个页面上有两个日期选择器,它们最初都没有价值。 当用户输入第一个datepicker的值(通过datepicker或手动)时,我希望第二个datepicker填充相同的日期。

在我迁移之前,这很好,但现在第二个日期没有被格式化。

代码我正在使用......

    <div class="input-group">
        <input 
            class="form-control" 
            type="text" 
            name="datumVanaf" 
            ng-model="filter.datumVanaf" 
            placeholder="Datum vanaf (dd-mm-jjjj)" 
            datepicker-popup="dd-MM-yyyy" 
            required 
            datepicker-options="{{calendarOpties}}" is-open="kalender.datumVanafOpened"
            clear-text="wis" 
            current-text="Vandaag" 
            close-text="Sluiten" 
            lower-than="{{filter.datumTM}}"
            ng-class="{'error': filterForm.$submitted && filterForm.datumVanaf.$error.required || filterForm.datumVanaf.$error.lowerThan}" 
        />
        <span class="input-group-btn">
            <button type="button" class="btn btn-default" ng-click="openDatumVanaf($event)"><i class="glyphicon glyphicon-calendar"></i></button>
        </span>
    </div>
    <div class="input-group">
        <input 
            class="form-control" 
            type="text" 
            name="datumTM" 
            ng-model="filter.datumTM" 
            placeholder="Datum t/m (dd-mm-jjjj)" 
            datepicker-popup="dd-MM-yyyy" 
            required 
            datepicker-options="{{calendarOpties}}" 
            is-open="kalender.datumTMOpened"
            clear-text="wis" 
            current-text="Vandaag" 
            close-text="Sluiten"
            ng-class="{'error': filterForm.$submitted && filterForm.datumTM.$error.required || filterForm.datumVanaf.$error.lowerThan}" 
        />
        <span class="input-group-btn">
            <button type="button" class="btn btn-default" ng-click="openDatumTM($event)"><i class="glyphicon glyphicon-calendar"></i></button>
        </span>
    </div>  

和观察者

$scope.$watch('filter.datumVanaf', function(newValue, oldValue) {
    logger.info('newValue', newValue);
    if (newValue != undefined && $scope.filter != undefined && $scope.filter.datumTM == undefined && isValidDate(newValue)) {
        $scope.filter.datumTM = newValue;
    }
});

日期开始显示在第一个输入字段中,如下所示:

28-09-2014

但是当它在第二个字段中被复制时,它没有被格式化:

Sun Sep 28 2014 00:00:00 GMT + 0200(West-Europa(zomertijd))

我不知道为什么它不再起作用,而且我在stackoverflow上找不到类似的情况时遇到了麻烦。我希望我能错过一些明显的东西,但我不知所措。

1 个答案:

答案 0 :(得分:0)

尝试在filter.datumVanaf的匿名函数中使用$ filter,然后再将其设置到视图中。所以代码可能与此类似:

    $scope.filter.datumTM = $filter('date')(newValue,'dd-MM-yyyy');

没有测试过,但是你明白了;)

价:

  1. AngularJS Documentation - date usage in javascript