我正在创建一个日期选择器。这将显示日期列表。假设当前日期是10月12日,因此它将在可滚动列表中显示当前日期的下一个365天。我正在使用for循环,但日期列表不会出现。这是写作过程。为此,我想,我需要创建一个单独的数组。我将不得不在简单的Javascript,AngularJS而不是jQuery中完成它。请检查下面的代码。
function Ctrl($scope)
{
for (i=1; i<=365; i++){
$scope.date = new Date();
}
}
&#13;
<div ng-app ng-controller="Ctrl">
{{date | date:'MMM-dd'}}<br/>
</div>
&#13;
答案 0 :(得分:1)
您需要使用日期填充数组,然后使用ng-repeat渲染它们。
function Ctrl($scope){
$scope.dates = [];
var date = new Date();
for(var i = 1; i < 365; i += 1) {
$scope.dates.push(date.setDate(date.getDate() + 1););
}
}
<div ng-app ng-controller="Ctrl">
<div ng-repeat="date in dates">{{date | date:'MMM-dd'}}</div>
</div>
答案 1 :(得分:1)
我建议用另一个版本来解决问题:
<强>编辑:强>
但是,$scope.dates.push(date.setDate(date.getDate() + 1));
( Demo )比我的以下代码更快(setTime(...)
)( Demo )
function TodoCtrl($scope) {
var count = new Date();
$scope.dates = [];
for (var i = 1; i <= 365; i++) {
$scope.dates.push(count);
var next = new Date();
next.setTime(count.getTime() + (1000 * 3600 * 24))
count = next;
}
}
更新:
你可以在没有静态365的情况下做到这一点;的 Demo 强>
function TodoCtrl($scope) {
var day = new Date();
var end = new Date();
end.setYear(2016)
$scope.dates = [];
while (end > day) {
$scope.dates.push(day.setDate(day.getDate() + 1));
}
}