【问题标题】:Angular-material's tabs and ui-bootstrap's datepicker conflictAngular-material 选项卡和 ui-bootstrap datepicker 冲突
【发布时间】:2015-06-01 21:39:06
【问题描述】:

我有一个带有角度材料选项卡和 ui-bootstrap 日期选择器的模态窗口。当我打开日期选择器时,文本字段向上移动,我无法访问日期选择器或字段。

Here's a demo in jsFiddle

这是我的代码:

var app = angular.module('myApp', ['ui.bootstrap', 'ngAnimate', 'ngAria', 'ngMaterial'])
.controller('myController', function ($scope, $modal) {
  $scope.showModal = function () {
    var modalInstance;
    modalInstance = $modal.open({
      templateUrl: "addNew.html",
      controller: 'myController2',
      size: 'lg'
    });
  };
  $scope.showModal();
})
.controller('myController2', function ($scope, $modal) {
  $scope.datepickers = {
    start: false
  }

  $scope.openDatepicker = function ($event, which) {
    $event.preventDefault();
    $event.stopPropagation();
    $scope.datepickers[which] = true;
  };

  $scope.dateOptions = {
    formatYear: 'yy',
    startingDay: 1
  };

  $scope.dateFormat = 'mediumDate';
});
<div ng-app="myApp">
  <div ng-controller="myController">
    <script type="text/ng-template" id="addNew.html">
      <div class="modal-body">
        <div class="panel panel-default">
          <div class="panel-heading">
            <h3 class="panel-title">Add</h3>
          </div>
          <div class="panel-body">
            <md-tabs md-dynamic-height md-border-bottom>
              <md-tab label="date">
                <div class="form-horizontal">
                  <div class="row">
                    <div class="col-md-6">
                      <div class="row form-group">
                        <label for="dateStart" class="col-sm-2 col-md-4 control-label">
                          Date&nbsp;Start
                        </label>
                        <div class="col-sm-10 col-md-8">
                          <div class="input-group ui-datepicker">
                            <input type="text"
                                   class="form-control"
                                   name="dateStart"
                                   id="dateStart"
                                   datepicker-popup="{{dateFormat}}"
                                   ng-model="campaign.dateStart"
                                   is-open="datepickers.start"
                                   datepicker-options="dateOptions"
                                   ng-required="true"
                                   ng-click="openDatepicker($event, 'start')"
                                   close-text="Close"/>
                            <span class="input-group-addon" ng-click="openDatepicker($event, 'start')">
                              <i class="glyphicon glyphicon-calendar"></i>
                            </span>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </md-tab>
              <md-tab label="other tabs"></md-tab>
              <md-tab label="other tabs"></md-tab>
              <md-tab label="other tabs"></md-tab>
              <md-tab label="other tabs"></md-tab>
            </md-tabs>
          </div>
        </div>
      </div>
    </script>
  </div>
</div>

我对@9​​87654322@ 使用了一个 css 技巧,但它不是很整洁。所以我想知道是否有办法在打开日期选择器或日期选择器显示在模式窗口上(如选择窗口打开)时扩展选项卡高度。

【问题讨论】:

  • 期望的行为是什么?你想让模态框展开还是让选择器浮动?
  • 添加溢出:自动;到这个类 md-tab-content.md-no-scroll{} 并尝试。
  • @DTing 我希望标签展开,这将导致模式展开。模态不是问题。
  • @stanze 溢出:自动不起作用

标签: css twitter-bootstrap angular-ui-bootstrap bootstrap-modal angular-material


【解决方案1】:

您需要让下拉日期选择器作为常规文档流的一部分出现,这样它会占用空间并且选项卡选择器会自动为其腾出空间。它目前没有这样做,因为它使用 .dropdown-menu,Bootstrap 将 position: absolute; 添加到该 position: absolute;

像这样覆盖:

.dropdown-menu[datepicker-popup-wrap] {
    position: static;
}

你可以做一些其他风格的事情,但这是基本原则。

Demo in jsFiddle

【讨论】:

  • 我试过这个,但是这有input-group-addon的高度问题,它也使输入字段的宽度更宽,它也将内容向下移动link,还有其他方法吗??跨度>
  • 我在模态中遇到了类似的问题,但是为了扩展选项卡,我希望模态浮在整个页面上(就像模态通常那样)。既然您提供了这个非常好的答案,您是否还知道当从选项卡中单击按钮时如何在页面上浮动引导模式?欢迎所有提示!
  • @kramer65,你试过Angular UI's Bootstrap Modal 实现吗?除此之外,评论部分并没有足够的空间来诊断。如果你能用你拥有的一些代码总结你的问题以及它为什么不工作,那么你可以ask a new question 并在这里链接到它,我(和其他人)可以看看。
猜你喜欢
  • 1970-01-01
  • 2014-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多