Javascript 角度引导ui日期选择器动态更改minMode
所以我有一个日期选择器,在这里更改标签日/月/年应该会更改日期选择器的最小模式Javascript 角度引导ui日期选择器动态更改minMode,javascript,jquery,angularjs,datepicker,Javascript,Jquery,Angularjs,Datepicker,所以我有一个日期选择器,在这里更改标签日/月/年应该会更改日期选择器的最小模式 switch($rootScope.tab){ case 'd': $scope.datePicker = 'day'; $scope.dateOptions = {minMode : 'day'}; break; case 'm': $scope.datePicker = 'month'; $scope.dateOptions = {m
switch($rootScope.tab){
case 'd':
$scope.datePicker = 'day';
$scope.dateOptions = {minMode : 'day'};
break;
case 'm':
$scope.datePicker = 'month';
$scope.dateOptions = {minMode: 'month', datepickerMode: 'month'};
break;
case 'y':
$scope.datePicker = 'year';
$scope.dateOptions = {minMode : 'year'};
break;
case 't':
$scope.datePicker = 'none';
$scope.dateOptions = {minMode : 'none'};
}
问题是datepicker更新得很好,但是dateOptions忽略了minMode,仍然允许您选择day而不是month/year等等。视图中的日期选择器
<span
type="hidden"
style="display: none;"
class="form-control"
datepicker-popup="{{format}}"
ng-model="dt"
is-open="opened"
min-date="{{minDate}}"
max-date="{{maxDate}}"
datepicker-mode="datePicker"
datepicker-options="dateOptions"
ng-required="true"
close-text="Close"/>
是否有类似每次选项卡更改时重新绘制日期选择器的解决方法?(日期选择器在选项卡集之外)。我遇到的解决方案之一是使用并创建3个按钮,用于显示具有不同startView(minMode)和minView(datepicker)的日历根据按下的选项卡/按钮,使用ng show显示/隐藏其中的不同选项卡/按钮。显然,此方法在引导ui角度日期选择器上不起作用。ui引导tpls链接基本上只在初始化期间复制选项对象的值,因此您不会动态看到这些更改:
var datepickerEl = angular.element(popupEl.children()[0]);
if ( attrs.datepickerOptions ) {
angular.forEach(scope.$parent.$eval(attrs.datepickerOptions), function( value, option ) {
datepickerEl.attr( cameltoDash(option), value );
});
}
在我看来,对于AngularJS指令来说,这是意外的行为,模型更新反映在DOM中,反之亦然。您也可以在切换选项卡时使用
$broadcast
事件和configureOn
选项来重新配置。请参见问题与上次评论相同。很好!你能举个例子说明如何做到这一点吗?