如何在 primeng p-calendar 控件中对视图和日期格式属性应用条件?
How to apply condition on view and dateFormat attribute on prime ng p-calendar control?
我必须在 turbo table 行上使用 prime-ng p-calendar,它可以有两种不同的日期格式 - mm/yy 和 mm/dd/yy,具体取决于期间字段值。现在,我已经添加了两次此控件并根据句点字段条件呈现控件,如下所示。
<p-calendar *ngIf="Period.length == 15" name="period"
id="period"
selectionMode="range"
view="month"
appendTo="body"
dataType="string"
formControlName="period"
[showIcon]="true"
[monthNavigator]="true"
[yearNavigator]="true"
[dateFormat]="mm/yy"
placeholder="Choose">
</p-calendar>
<p-calendar *ngIf="Period.length == 20" name="period"
id="period"
selectionMode="range"
view="date"
appendTo="body"
dataType="string"
formControlName="period"
[showIcon]="true"
[monthNavigator]="true"
[yearNavigator]="true"
dateFormat="mm/dd/yy"
placeholder="Choose">
</p-calendar>
我的问题是如何使用一个适用于两种日期格式的控件?我知道我需要在视图和 dateFormat 属性上应用条件,但我无法使其工作。
您可以绑定值并在您的 dateFormat
中使用 ternary operator。基本上你将 dateFormat
绑定到某个条件,在这种情况下可能是一个三元组(你可以根据需要链接任意多个,但代码可能会很快变得不可读)。
代码将如下所示:
<p-calendar
name="period"
id="period"
selectionMode="range"
view="date"
appendTo="body"
dataType="string"
formControlName="period"
[showIcon]="true"
[monthNavigator]="true"
[yearNavigator]="true"
[dateFormat]="
Period.length == 20 ? 'mm/dd/yy' :
Period.length == 15 ? 'mm/yy' :
'default value'"
placeholder="Choose">
</p-calendar>
如果 Period
没有长度或长度与这些值中的任何一个不同,请确保提供一些默认值。如果条件确实取决于它的值,那么在视图的组件初始化时 Period
不应该是未定义的。
我必须在 turbo table 行上使用 prime-ng p-calendar,它可以有两种不同的日期格式 - mm/yy 和 mm/dd/yy,具体取决于期间字段值。现在,我已经添加了两次此控件并根据句点字段条件呈现控件,如下所示。
<p-calendar *ngIf="Period.length == 15" name="period"
id="period"
selectionMode="range"
view="month"
appendTo="body"
dataType="string"
formControlName="period"
[showIcon]="true"
[monthNavigator]="true"
[yearNavigator]="true"
[dateFormat]="mm/yy"
placeholder="Choose">
</p-calendar>
<p-calendar *ngIf="Period.length == 20" name="period"
id="period"
selectionMode="range"
view="date"
appendTo="body"
dataType="string"
formControlName="period"
[showIcon]="true"
[monthNavigator]="true"
[yearNavigator]="true"
dateFormat="mm/dd/yy"
placeholder="Choose">
</p-calendar>
我的问题是如何使用一个适用于两种日期格式的控件?我知道我需要在视图和 dateFormat 属性上应用条件,但我无法使其工作。
您可以绑定值并在您的 dateFormat
中使用 ternary operator。基本上你将 dateFormat
绑定到某个条件,在这种情况下可能是一个三元组(你可以根据需要链接任意多个,但代码可能会很快变得不可读)。
代码将如下所示:
<p-calendar
name="period"
id="period"
selectionMode="range"
view="date"
appendTo="body"
dataType="string"
formControlName="period"
[showIcon]="true"
[monthNavigator]="true"
[yearNavigator]="true"
[dateFormat]="
Period.length == 20 ? 'mm/dd/yy' :
Period.length == 15 ? 'mm/yy' :
'default value'"
placeholder="Choose">
</p-calendar>
如果 Period
没有长度或长度与这些值中的任何一个不同,请确保提供一些默认值。如果条件确实取决于它的值,那么在视图的组件初始化时 Period
不应该是未定义的。