如何在点击时显示 Angular UI Bootstrap 日期选择器?
How do I display Angular UI Bootstrap date picker on click?
我有一个使用完整日历的 Angular 应用程序。我有一个Full Calendar custom button that when a user clicks, should open a Angular Bootstrap Datepicker。我目前正在切换 CSS 可见性,但出于某种原因,除非我调整 window.
的大小,否则日期选择器不会显示(单击按钮后)
我的模板:
<div id="cal-go-to-date" ng-style="goToDate.style">
<div uib-datepicker ng-model="goToDate.dt" class="well well-sm" datepicker-options="goToDate.options"></div>
</div>
我的 Angular 控制器:
$scope.uiConfig = {
calendar: {
// Other configuration
header: {
center: 'title'
},
customButtons: {
goToDate: {
text: 'go to date',
click: function(event) {
$scope.goToDate.style.visibility = 'visible';
}
}
},
// Other configuration
}
};
$scope.goToDate = {
dt: new Date(),
options: {
datepickerMode: 'month',
minMode: 'month'
},
style: {
'position': 'absolute',
'top': '224px',
'left': '76px',
'min-height': '290px',
'z-index': '99999',
'visibility': 'hidden'
}
};
我正在调用 $scope.goToDate.style.visibility = 'visible';
,但除非我调整 window 的大小,否则它不起作用。我该怎么做才能切换选择器的可见性?
如果调整大小有问题,请尝试使用此功能
$scope.windowResize = function () {
setTimeout("$(window).trigger('resize')",400);
};
然后单击该按钮调用此函数。
希望对您有所帮助
尝试用 $applyAsync
结束通话,例如:
$scope.$applyAsync(function(){ $scope.goToDate.style.visibility = 'visible'; });
因为看起来这发生在 angularjs 范围之外。
我有一个使用完整日历的 Angular 应用程序。我有一个Full Calendar custom button that when a user clicks, should open a Angular Bootstrap Datepicker。我目前正在切换 CSS 可见性,但出于某种原因,除非我调整 window.
的大小,否则日期选择器不会显示(单击按钮后)我的模板:
<div id="cal-go-to-date" ng-style="goToDate.style">
<div uib-datepicker ng-model="goToDate.dt" class="well well-sm" datepicker-options="goToDate.options"></div>
</div>
我的 Angular 控制器:
$scope.uiConfig = {
calendar: {
// Other configuration
header: {
center: 'title'
},
customButtons: {
goToDate: {
text: 'go to date',
click: function(event) {
$scope.goToDate.style.visibility = 'visible';
}
}
},
// Other configuration
}
};
$scope.goToDate = {
dt: new Date(),
options: {
datepickerMode: 'month',
minMode: 'month'
},
style: {
'position': 'absolute',
'top': '224px',
'left': '76px',
'min-height': '290px',
'z-index': '99999',
'visibility': 'hidden'
}
};
我正在调用 $scope.goToDate.style.visibility = 'visible';
,但除非我调整 window 的大小,否则它不起作用。我该怎么做才能切换选择器的可见性?
如果调整大小有问题,请尝试使用此功能
$scope.windowResize = function () {
setTimeout("$(window).trigger('resize')",400);
};
然后单击该按钮调用此函数。 希望对您有所帮助
尝试用 $applyAsync
结束通话,例如:
$scope.$applyAsync(function(){ $scope.goToDate.style.visibility = 'visible'; });
因为看起来这发生在 angularjs 范围之外。