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
选项来重新配置。请参见

问题与上次评论相同。很好!你能举个例子说明如何做到这一点吗?