0

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

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

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

我正在使用的代码...

    <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

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

2014 年 9 月 28 日星期日 00:00:00 GMT+0200(西欧 (zomertijd))

我不知道为什么这不再起作用,而且我在 stackoverflow 上找不到类似的案例。我希望我错过了一些明显的东西,但我不知所措。

4

1 回答 1

0

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

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

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

参考:

  1. AngularJS 文档 - javascript 中的日期使用
于 2014-10-02T12:44:49.147 回答