Javascript 使用$scope变量设置日期选择器min/maxDates
我面临的问题是,我已经创建了一个日期选择器,我想根据从json收集的日期设置它的最小日期和最大日期 问题是,在初始化日期选择器时,$scope变量为空Javascript 使用$scope变量设置日期选择器min/maxDates,javascript,angularjs,datepicker,Javascript,Angularjs,Datepicker,我面临的问题是,我已经创建了一个日期选择器,我想根据从json收集的日期设置它的最小日期和最大日期 问题是,在初始化日期选择器时,$scope变量为空 $scope.dates = []; $scope.stats = {}; $scope.latestDay; $scope.startDay; $controller('rightsController', { $scope : $scope }); init(); $("#datepick").datepicker({
$scope.dates = [];
$scope.stats = {};
$scope.latestDay;
$scope.startDay;
$controller('rightsController', {
$scope : $scope
});
init();
$("#datepick").datepicker({
changeMonth: true,
changeYear: true,
buttonImageOnly: true,
dateFormat: 'dd/mm/yy',
minDate: ''+$scope.startDay,
maxDate: ''+$scope.latestDay
});
function init() {
fetchHourlyStats0();
}
$scope.fetchComparativeStats = function() {
fetchHourlyStats0();
}
function fetchHourlyStats0() {
var promiseStats = statsFactory.getHourlyStats();
$q.all([ promiseStats ]).then(function(values) {
$scope.stats = values[0].data;
i = 0;
for ( var k in $scope.stats) {
$scope.dates[i] = k;
var v = $scope.stats[k];
i++;
}
var length = $scope.dates.length-1;
$scope.latestDay = $scope.dates[0];
$scope.startDay = $scope.dates[length];
})
}
在创建数据访问对象并填充变量后,是否可以创建datepicker?首先,我建议您停止混合使用Jquery和Angular。看看这条线: 我认为您将很难将jquery设置的值放入选择器中 但是,这不是你现在的问题
function fetchHourlyStats0() {
var promiseStats = statsFactory.getHourlyStats();
$q.all([ promiseStats ]).then(function(values) {
// code removed
$scope.latestDay = $scope.dates[0];
$scope.startDay = $scope.dates[length];
$("#datepick").datepicker({
changeMonth: true,
changeYear: true,
buttonImageOnly: true,
dateFormat: 'dd/mm/yy',
minDate: ''+$scope.startDay,
maxDate: ''+$scope.latestDay
});
});
}
您只需在承诺延迟创建日期选择器的.then()
中运行jquery代码即可
而且,promisests
看起来像一个单一的承诺。您不需要将$q
注入控制器。直接使用您的第一个承诺:
statsFactory.getHourlyStats().then(function(values){
//
});
或
欢迎来到这里,约翰!我已经编辑了你的问题,删除了“你好,我是新来的”和“提前谢谢”。谢谢你的回复!我会研究你提供的链接。至于代码,我以前试过,如果我把代码放在那里,datepicker没有可用的min/maxDate。它不允许我选择任何一天。
var promiseStats = statsFactory.getHourlyStats();
promiseStats.then(function(values){
//
});