Primeng P日历与父项大小相同

时间:2018-09-30 10:11:46

标签: angular primeng

我正在使用一棵表树中的primeng的p-calendar。如何使p日历字段的大小与其所在的单元格相同?还是一般来说-如何使其尺寸与父级div相同?

您可以使用style和inputStyle使它以绝对宽度工作-但我的表可以调整大小-因此在这种情况下它不起作用。我在推荐的地方尝试过:

'$source'

但这不起作用,因为日期选择器的按钮具有固定的大小。

在我看来,这是一个非常基本的要求-能够使组件的尺寸与其父组件相同。真的很惊讶,这行不通。

谢谢, 迈克尔

5 个答案:

答案 0 :(得分:2)

这对我有用:

<p-calendar [style]="{'width':'100%'}" [inputStyle]="{'width':'100%'}" [timeOnly]="true"></p-calendar>

答案 1 :(得分:0)

我在下面尝试实现这一目标:

添加您自己的类以覆盖日期容器的CSS。当我添加class =“ treetableDate”

    <p-calendar [(ngModel)]="date1" 
[style]="{'width':'70%'}" [inputStyle]="{'width':'70%'}" class="treetableDate"></p-calendar>

现在覆盖日历组件的CSS。如下所示:

.treetableDate .ui-widget-content{
    width: 80%; // or in pixel depends how much width you want.
}

注意:请勿直接覆盖.ui-widget-content。否则,它将影响应用程序中每个组件的宽度。使用您自己的类,它将仅影响该特定元素。

答案 2 :(得分:0)

问题是appendTo =“ body”,它更改了monthpicker的上下文。 要修复,我在appendTo中使用了div。

答案 3 :(得分:0)

我遇到了一个问题,我看到日历弹出窗口继承了它所在列的宽度(我将它用于 p 表上的列过滤器),因为我的列相当窄,日历也很窄,所以如果我使用

扩大日历
[style]="{'width':'300px'}" 

然后我的专栏也扩大了,这不是我想要的。

为了保持我的列宽让弹出窗口以完整/正常大小显示,我将其添加到 p-table 元素中: #myTable 在 p-calendar 元素中,我添加了以下内容: [appendTo]="myTable"

答案 4 :(得分:0)

我知道这已经过时了,但以防万一有人在将来遇到此问题并且发现上述解决方案均无效。请参阅下文。

OP 提到父 div:

<div>
  <p-calendar [(ngModel)]="date1" class="treetableDate"></p-calendar>
</div>
:host {
  ...
  > div {
    display: flex;
    > p-calendar {
      flex-grow: 1;
    }
  }
}