تغییر تاریخ پیکر در فرم ویرایش داده
Salmani-AliReza opened this issue · 9 comments
با سلام و خسته نباشید.
من می خواهم از این پیکر در یک فرم ویرایش داده استفاده کنم و نیاز دارم تا مقداری که از Web API خواند میشه به پیکر نیز اعمال شود من از روش Reactive Forms فرم استفاده میکنم و input را به Form Control مربوط وصل می کنم . مقدار تاریخ درون input به درستی قرار می گیرد ولی زمانی که پیکر را باز می کنم تاریخ امروز را نشان می دهد اگر کسی از دوستان راه حلی برای این مشکل دارد لطفا راهنمایی کند
Hi,
That's because ng-persian-datepicker
currently doesn't support FormControl
or ngModel
Yes! I know that's a weak point for an angular package!
I should add ReactiveForm support in v4.x.x
For now:
You can use it as i implement it in demo component:
https://github.com/Saeed-Pooyanfar/ng-persian-datepicker/tree/master/src/app/demo
با سلام و خسته نباشید.
با تشکر از جواب و راهنمایتون. من از این روش استفاده کردم ولی به دلیل اینکه داده ها از Web API به صورت Async میاد و بعد از ساخته شدن View داده ها آماده میشه از این روش نمیشه استفاده کرد این روش فقط در صورتی که تاریخ یک مقدار ثابت باشه و نخواهیم از Web API مقادیر را دریافت کنیم به درستی عمل میکنه و در پروژه ای که من در حال کارکردن روی آن هستم یک تعداد زیادی فرم ویرایش داده داریم که در هر کدام چند Date Picker وجود دارد آیا امکان اضافه کردن این قابلیت (Reactive Forms) به سورس ng-persian-datepicker به وسیله خودم هست؟
با تشکر.
You can wait for dateValue:
dateValue: number | undefined;
onResponse(data: any): void {
this.dateValue = data.dateValue;
}
<ng-container *ngIf="dateValue">
<ng-persian-datepicker [dateValue]="dateValue"></ng-persian-datepicker>
</ng-container>
@Dev-Alireza please check v4.0.0
I just add support for ReactiveForm
Thanks!
Hello Saeed.
what if we don't have any ReactiveForm?!
and now [dateValue] and [input] are not available
I can't set Date value manually.
also I got a new error on build:
./node_modules/ng-persian-datepicker/fesm2015/ng-persian-datepicker.mjs:585:225-231 - Error: export 'filter' (imported as 'filter') was not found in 'rxjs' (possible exports: ArgumentOutOfRangeError, AsyncSubject, BehaviorSubject, ConnectableObservable, EMPTY, EmptyError, GroupedObservable, NEVER, Notification, NotificationKind, ObjectUnsubscribedError, Observable, ReplaySubject, Scheduler, Subject, Subscriber, Subscription, TimeoutError, UnsubscriptionError, VirtualAction, VirtualTimeScheduler, animationFrame, animationFrameScheduler, asap, asapScheduler, async, asyncScheduler, bindCallback, bindNodeCallback, combineLatest, concat, config, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, identity, iif, interval, isObservable, merge, never, noop, observable, of, onErrorResumeNext, pairs, partition, pipe, queue, queueScheduler, race, range, scheduled, throwError, timer, using, zip)
looks like v4.00 is not stable enough. I'm rolling back to v2.4 for now
@hedyehloo
Hi
You can set date value by using formControlName
inside a formGroup
This is a breaking change feature and that's why i jumped to v4.x.x
ReactiveFormsModule
is a standard tool in @angular/forms
So try it. (It's recommend way to dealing with forms by angular team).
For installation:
Probably you should upgrade rxjs
to ^7.4
Hi,
dateInitValue not works in v4 and initial dateValue in reactive form is always a string persian date.
how to get Gregorian value?!
(assume that dateOnSelect never called)
@hedyehloo
You can use (dateOnInit)
$event: IActiveDate