I use angular 8.
Here is html code:
<div class="row mt-5">
<div class="col-md-6 mx-auto">
<h2 class="text-center">Add fridge type</h2>
<div class="card mt-3">
<div class="card-body">
<form [formGroup]="newFridgeType" (ngSubmit)="onSubmit()">
<div class="form-group">
<label class="col-md-4">Title </label>
<input type="text" class="form-control" formControlName="text" />
<label class="col-md-4">Description </label>
<input type="text" class="form-control" formControlName="description" />
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary col-md-4" [disabled]="todoForm.invalid">Add</button>
<a [routerLink]="['/fridgetypeList']">
<button type="submit" class="btn btn-primary col-md-4 ml-1">Back</button>
</a>
</div>
</form>
</div>
</div>
</div>
</div>
And here is component defenition:
import { Component, OnInit } from '@angular/core';
import {FormBuilder, FormGroup, Validators} from "@angular/forms";
import { FridgeTypeService } from './fridgeType.service';
import { Router } from "@angular/router";
@Component({
selector: 'fridgeType-add',
templateUrl: './fridgeType-add.component.html',
//styleUrls: ['./todo-add.component.css']
})
export class FridgeTypeAddComponent implements OnInit {
newFridgeType: FormGroup;
constructor(private formBuilder: FormBuilder,
private router: Router,
private fridgeTypeService: FridgeTypeService)
{ }
ngOnInit() {
this.newFridgeType = this.formBuilder.group({
text: ['', Validators.required],
description: ['', Validators.required]
});
}
onSubmit() {
debugger;
this.fridgeTypeService.save(this.newFridgeType.value)
.subscribe(res => {
let id = res['_id'];
this.router.navigate(['/fridgetypeList']);
}, (err) => {
console.log(err);
});
}
}
In console I on this row:
<input type="text" class="form-control" formControlName="text" />
I get this error:
ERROR TypeError: Cannot read property 'invalid' of undefined
at Object.eval [as updateRenderer] (FridgeTypeAddComponent.html:11)
at Object.debugUpdateRenderer [as updateRenderer] (core.js:45294)
at checkAndUpdateView (core.js:44277)
at callViewAction (core.js:44637)
at execComponentViewsAction (core.js:44565)
at checkAndUpdateView (core.js:44278)
at callViewAction (core.js:44637)
at execEmbeddedViewsAction (core.js:44594)
at checkAndUpdateView (core.js:44272)
at callViewAction (core.js:44637)
Any idea why I get error above?
todoForm.invalidWhat istodoFormsupposed to be?