从 Angular Reactive Form 中检索日期值

问题描述 投票:0回答:1

我在我的 Angular 组件中创建了一个响应式表单,我想用它从用户那里检索日期范围。

HTML

<form [formGroup]="dateRangeForm" (submit)="onSubmit(f)" #f>
            <div class="card-block">
                <div class="form-group">
                    <label for="start-date">Start Date: </label>
                    <input id="start-date"
                           type="date"
                           class="form-control"
                           formControlName="startDate"/>
                </div>
                <div class="form-group">
                    <label for="end-date">End Date: </label>
                    <input id="end-date"
                           type="date"
                           class="form-control"
                           formControlName="endDate">
                </div>
                <div class="card-footer separator">
                    <input type="submit" value="Search">
                </div>
            </div>
        </form>

TypeScript

 this.dateRangeForm = this.formBuilder.group({
      startDate: [ new Date(), Validators.required ],
      endDate: [ new Date(),Validators.required ],
    });

对于我的提交表单,我尝试从表单控件中检索数据,如下所示。

onSubmit(form: FormGroup) {
    var startDate:string  = form.controls["startDate"].getRawValue();
    var endDate:string  = form.controls["endDate"].value;
  }

但是,当我这样做时,我在开发工具控制台中得到以下

TypeError
,并且我不明白为什么如果我在 FormGroup 的
group()
方法中声明了表单控件。我尝试将
startDate
endDate
的数据类型更改为字符串,但遇到了同样的错误。

core.mjs:6362 ERROR Error: Uncaught (in promise): NullInjectorError: R3InjectorError(AppModule)[CaseErrorsDashboardService -> CaseErrorsDashboardService -> CaseErrorsDashboardService]: 
  NullInjectorError: No provider for CaseErrorsDashboardService!
NullInjectorError: R3InjectorError(AppModule)[CaseErrorsDashboardService -> CaseErrorsDashboardService -> CaseErrorsDashboardService]: 
  NullInjectorError: No provider for CaseErrorsDashboardService!
    at NullInjector.get (core.mjs:8990:1)
    at R3Injector.get (core.mjs:9157:1)
    at R3Injector.get (core.mjs:9157:1)
    at R3Injector.get (core.mjs:9157:1)
    at ChainedInjector.get (core.mjs:21488:1)
    at lookupTokenUsingModuleInjector (core.mjs:3289:1)
    at getOrCreateInjectable (core.mjs:3334:1)
    at ɵɵdirectiveInject (core.mjs:10306:1)
    at NodeInjectorFactory.CasesAndErrorsDashboardComponent_Factory [as factory] (ɵfac.js:1:1)
    at getNodeInjectable (core.mjs:3519:1)
    at resolvePromise (zone.js:1262:1)
    at resolvePromise (zone.js:1216:1)
    at eval (zone.js:1329:1)
    at _ZoneDelegate.invokeTask (zone.js:443:1)
    at Object.onInvokeTask (core.mjs:26299:1)
    at _ZoneDelegate.invokeTask (zone.js:442:1)
    at Zone.runTask (zone.js:214:1)
    at drainMicroTaskQueue (zone.js:632:1)
    at ZoneTask.invokeTask [as invoke] (zone.js:529:1)
    at invokeTask (zone.js:1727:1)
angular angular-forms
1个回答
0
投票

尝试将 CaseErrorsDashboardService 添加到您的提供商 例如在 AppModule 中 添加这个:

providers: [CaseErrorsDashboardService ]
© www.soinside.com 2019 - 2024. All rights reserved.