日期选择器(angular-ui)的初始值未显示。

4
我使用以下代码。
<pre>Selected date is: <em>{{tournament.startDate | date:'fullDate' }}</em></pre>
<input name=startDate" id="startDate" type="text" class="form-control" uib-datepicker-popup="{{format}}" ng-model="tournament.startDate" is-open="popup1.opened"
                         ng-required="true" close-text="Schließen""
                         datepicker-options="dateOptions" alt-input-formats="altInputFormats" />
                     <span class="input-group-btn">
                        <button type="button" class="btn btn-default" ng-click="open1()"><i class="glyphicon glyphicon-calendar"></i></button>
                    </span>

我的控制器

$scope.tournament = Tournament.get({id: $routeParams.id});

    $scope.dateOptions = {
        dateDisabled: false,
        formatYear: 'yy',
        maxDate: new Date(2020, 5, 22),
        minDate: new Date(),
        startingDay: 1
    };

tournament.startDate的值显示在pre-标签中,但不显示在输入字段中。打开的日期选择器会显示正确的日期。

这似乎是一个同步问题,因为如果我将控制器更改为

$scope.tournament = new Object();
$scope.tournament.startDate = new Date();

输入框中显示的是日期。 编辑:范围内填入了正确的日期,但输入框不显示值。 感谢您的帮助。 chokdee

当同步未发生时,typeof(tournament.startDate)是什么? - mkkhedawat
不理解这个问题。 - chokdee
你从服务器获取了scope.tournament。在获取到值后,你能否执行“console.log(typeof(tournament.startDate))”操作?看起来这是一种类型不匹配的情况。 - mkkhedawat
哦,看起来你已经解决了它 :) - mkkhedawat
1个回答

4
我自己发现REST服务返回的是字符串而不是日期对象,将其转换后就可以正常工作了。但我认为如果无法转换给定的对象,angular-ui应该引发异常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接