angular - 在 Angular 4 中更改 NgbDatepicker 的大小

标签 angular ng-bootstrap

出于某种我不知道的原因,我的 NgbDatePicker 比我想要的要小得多。它目前以以下尺寸显示:

enter image description here

...当我期望它以找到的示例中的尺寸显示时 here

我注意到一件奇怪的事情是,我的应用程序中日期选择器的以下部分在其 div 上设置了属性 _ngcontent-c0:

enter image description here

...同时,在网站上找到的示例的完全相同部分在其 div 上设置了属性 _ngcontent-c4这意味着它们的 div 甚至都不相同。这个相同的属性也用在几个 css 选择器中。

这是我使日期选择器出现的代码。我让它在单击输入字段时出现:

<form class="form-inline">
  <div class="form-group">
    <div class="input-group">
      <input readonly class="form-control rounded" (click)="d.toggle()" (clickOutside)="onDocumentClick($event, d)" (ngModelChange)="onModelChanged($event)" placeholder="yyyy-mm-dd"
             name="dp" [(ngModel)]="model" ngbDatepicker #d="ngbDatepicker">
      <svg><use xlink:href="sprite.svg#calendar"></use></svg>
    </div>
  </div>
</form>

这是配置 DatePicker 的组件的 ngOnInit() 代码:

    ngOnInit(): void {
    let today = new Date();
    let todayInDateStruct = {day: today.getUTCDate(), month: today.getUTCMonth() + 1, year: today.getUTCFullYear()};
    this.config.maxDate = this.maxDate || todayInDateStruct;
    this.config.minDate = this.minDate || {year: 1900, month: 1, day: 1};

    if (this.minDate$) {
        Rx.on(this, this.minDate$, (minDate: NgbDateStruct) => {
            if (minDate) {
                this.config.minDate = minDate;
            }
        });
    }

    /*
     The following line sets the first day of the week on the Calendar to Sunday instead of the default Monday.

     source: https://ng-bootstrap.github.io/#/components/datepicker/api
     */
    this.config.firstDayOfWeek = 7;
    }

有没有办法在不覆盖多个 NgbDatepicker 样式的情况下增加 NgbDatepicker 的大小?

最佳答案

我想你可以用这个。 创建自定义模板,例如:

<ng-template #tpl let-date="date" let-currentMonth="currentMonth" let-selected="selected">
            <div class="day">{{ date.day }}
            </div>
 </ng-template>

然后设置 dayTemplate 属性:[dayTemplate]="tpl"

和 CSS:

.day {      
    text-align: center;
    padding: 7px;
    border-radius: 1rem;
    width: 100% !important;
  }
.ngb-dp-day{
    width: 100% !important;
    height: 100% !important;
  }
.ngb-dp-weekday{
   width: 100% !important;
   height: 100% !important;
}

填充是天与天之间的距离。 因为dayview和weekday的默认css是“width: 2rem, height: 2rem”所以你需要通过添加“!important”来修改它。

将“封装:ViewEncapsulation.None”添加到您的组件中

关于angular - 在 Angular 4 中更改 NgbDatepicker 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47102363/

相关文章:

javascript - 如何将数据绑定(bind)到 Angular 2 中从父窗口打开的子窗口?

angular - 您如何以编程方式在 Angular 应用程序中的选择字段上触发点击事件?

laravel - Angular 2覆盖组件

angular - ng-bootstrap 折叠组件在切换一个时折叠所有组件 - Angular 6

css - ng bootstrap datepicker 风格泄漏

node.js - 如何在NeptuneDB中进行分页以实现高性能

子路由上路由器导出内的 Angular 组件不会填充可用空间

css - 替代/深/

ng-bootstrap/如果同一页面中有多个 ngbNav,则永远不会显示内容,但会显示第一个实例化 ngbNav 的内容

ng-bootstrap - 在 ng-bootstrap 中禁用下拉菜单?