【问题标题】:Primeng: p-calender default date not workingPrimeng:p 日历默认日期不起作用
【发布时间】:2018-04-06 12:54:56
【问题描述】:

我需要在 datepicker 中设置一个默认日期。我尝试使用 p-calender 的 defaultDate 属性,如下所示:

<p-calendar placeholder="mm/dd/yyyy"
name="deadline" 
required 
[(ngModel)]="deadline" 
#deadline="ngModel" 
[showIcon]="true" 
showTime="showTime" 
hourFormat="12"
[defaultDate]="defaultDate">

Component.ts 代码:

public defaultDate: Date = new Date();
ngOnInit() {
    this.defaultDate.setDate(this.defaultDate.getDate() - 5);
}

但是,上面的代码不起作用。请帮忙。

【问题讨论】:

    标签: angular typescript primeng


    【解决方案1】:
    //deadline: Date = new Date(0);
    deadline: Date;
    defaultDate: Date = new Date("January 31 1980 12:30");
    
    ngOnInit() {
       //if (this.deadline == undefined)
       //    this.deadline = new Date("June 30 1966 12:30");
    }
    

    根据issue,如果字段为空,defaultDate 是在第一次打开时显示月份-年份。

    defaultDate 属性不用于设置特定日期,仅在未设置 ngModel 值时适用。要设置默认显示日期,请使用 ngModel 而不是 defaultDate。

    【讨论】:

      【解决方案2】:

      您必须使用 ngModel 与您的默认日期绑定,如下所述:Open Link

      所以,在你的情况下,这样的事情应该可以工作:

      <p-calendar placeholder="mm/dd/yyyy"
      name="deadline" 
      required 
      [(ngModel)]="deadline" 
      #deadline="ngModel" 
      [showIcon]="true" 
      showTime="showTime" 
      hourFormat="12"
      [defaultDate]=deadline>
      

      更多信息请参考Primeng github中的calendar.ts文件:https://github.com/primefaces/primeng/blob/master/src/app/components/calendar/calendar.ts

      【讨论】:

      • 您的标签中似乎有两个 [(ngModel)] 属性
      • 刚刚更正了,它应该绑定到日历组件的 defaultDate 输入属性
      【解决方案3】:

      试试这个

      public deadline: Date;
      ngOnInit() {
          this.deadline.setDate((new Date()).getDate() - 5);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多