我正在使用带有Angular 4的PrimeNG组件,但我遇到了一个问题 - 那就是当我点击按钮时如何显示日历?
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello {{name}}</h2>
<button pButton type="button" (click)="openCalendar($event)" label="Open Calendar"></button>
<br/><br/>
<p-calendar #calendar [(ngModel)]="value"></p-calendar>
</div>
`,
})
export class App {
name: string;
value: Date;
@ViewChild('calendar')
calendar: any;
constructor() {
this.name = `Angular! v${VERSION.full}`
}
openCalendar(event: any) {
console.log(event);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用模板元素引用@ViewChild('calendar').我也试过使用焦点,@ViewChild('calendar#inputfield')但这不起作用.
知道如何点击按钮以编程方式打开日历吗?
我想使用带有月份和年份选择器的 Primeng 日历。我从他们的网站复制粘贴了代码示例,但我没有看到年份选择器。我的依赖:
"primeicons": "^1.0.0", "primeng": "^6.1.2",
<p-calendar view="month" dateFormat="mm/yy"
[yearNavigator]="true" yearRange="2000:2030">
</p-calendar>
Run Code Online (Sandbox Code Playgroud)
我只能看到几个月。
有任何想法吗?
我正在开发一个带有 PrimeNG 表的 SPA 来显示记录,并且每列都有一个数据过滤器。
其中之一是日期记录,它以 ISO 字符串形式出现,并在输入到表本身之前转换为 Date 对象。
我需要日期格式为“dd/MM/yyyy”,并且默认情况下日期的 p-columnFilter 与“MM/dd/yyyy”一起使用,因此我使用过滤器的 pTemplate 来自定义日历中的格式。
<ng-template ngFor let-col [ngForOf]="columns">
<th *ngIf="col.type !== 'date'" [pSortableColumn]="col.field">
{{col.header}}
<p-sortIcon [field]="col.field"></p-sortIcon>
</th>
<th *ngIf="col.type === 'date'" class="obe-table__date-header" [pSortableColumn]="col.field" [attr.rowspan]="2">
{{col.header}}
<p-sortIcon [field]="col.field"></p-sortIcon>
<p-columnFilter type="date" [field]="col.field" display="menu">
<ng-template pTemplate="filter">
<p-calendar dateFormat="dd/mm/yy"></p-calendar>
</ng-template>
</p-columnFilter>
</th>
</ng-template>Run Code Online (Sandbox Code Playgroud)
然后,当显示过滤器 UI 并单击“应用”时,它会表现得好像没有注册该值。我在想我在日历中缺少 [ngModel] 绑定,但我也尝试过但没有成功。
先感谢您。
我正在使用 primeng 日历,但无法从数据库设置日期。这是我来自服务器的日期:2018-04-17T16:41:47.683
当我尝试将格式更改为“YYYY.MM.DD HH.MM”时,我在控制台上收到此错误:未捕获(承诺中):位置 2 处出现意外的文字
当我将日期时间转换为字符串时,我收到相同的错误我不知道该怎么办。请帮忙![![1]](https://i.stack.imgur.com/0ZzDp.png)
这是我的代码:
组件.html
<p-calendar id="StartDate" inputStyleClass="form-control" [showIcon]="true" showTime="true" hourFormat="24" [locale]="tr"
name="StartDate" [(ngModel)]="datex"></p-calendar>
<!-- <p-calendar id="StartDate" inputStyleClass="form-control" [showIcon]="true" showTime="true" hourFormat="24" [locale]="tr"
name="StartDate" [(ngModel)]="contentTranslate.StartDate"></p-calendar> -->
Run Code Online (Sandbox Code Playgroud)
PS:我用 ngmodel 尝试了两种方法。
组件.ts
ngOnInit() {
this.getLanguageDetail(this.contentId, this.langId); }
getLanguageDetail(contentId: number, langId: number): any {
this.contentService
.getTranslateDetail(contentId, langId)
.subscribe(x => this.detailResultFunc(x));
}
detailResultFunc(x: any): any {
if (x) {
this.contentTranslate = x;
const tmpDate: string = moment(this.contentTranslate.StartDate).format('YYYY.MM.DD HH:MM');
this.datex = tmpDate; new Date(tmpDate).toLocaleDateString(); //.toLocaleDateString().trim();
} else {
this.contentTranslate …Run Code Online (Sandbox Code Playgroud) 我有一个输入元素,其中包含使用PrimeNG日历创建的附加日期选择器.
HTML部分
<p-calendar showAnim="slideDown"
id="calendar"
[showIcon]="true
[(ngModel)]="myDate"
(blur)="onBlurMethod($event)">
</p-calendar>
Run Code Online (Sandbox Code Playgroud)
这里我使用了PrimeNG日历标签.我使用了一个隐藏的文本框,所以我可以选择更新的值,但它反映在文本框中.如何捕获任何事件的更新值?
<input type="hidden" id = "datePickerText" [ngModel]="myDate">
Run Code Online (Sandbox Code Playgroud)
当用户通过直接输入input元素来更改日期时,我可以使用input元素的blur事件获取值,如上所示.但是当用户从datepicker更改日期时(即通过单击日历上的日期),不会调用模糊处理程序.
如何通过datepicker输入元素检测对所选日期的更改,而不是通过键入输入元素?
我正在使用primeng p-calender 我要求不要将过去的日期发送到API,
所以我想禁用过去的日期选择
如果有人知道请评论
提前致谢