При создании модифицированных шаблонов шаблонов, когда я создаю объект модели из значения формы. Тогда объект модели теряет свой ТИП.
Для простого примера:
Модельная книга:
export class Book {
public name: string;
public isbn: string;
}
Составная часть:
@Component({
selector: 'app-book',
templateUrl: './book.component.html',
styleUrls: ['./book.component.css']
})
export class BookComponent implements OnInit {
bookFormGroup: FormGroup;
private newBook: Book = new Book();
constructor(private fb: FormBuilder) {
this.bookFormGroup = this.fb.group({
name: new FormControl(''),
isbn: new FormControl('')
});
}
ngOnInit() {
}
addBook() {
console.log('submit');
this.newBook = <Book> this.bookFormGroup.value;
console.log(this.newBook instanceof Book);
console.log(this.newBook);
}
}
HTML:
<form [formGroup]="bookFormGroup" (ngSubmit)="addBook()">
<input type="text" formControlName="name" >
<input type="text" formControlName="isbn" >
<input type="submit" value="Submit">
</form>
В приведенном выше примере после заполнения экземпляра newBook
его преобразование в обычный Object
т.е. после this.newBook = <Book> this.bookFormGroup.value;
this.newBook instanceof Book
становится FALSE
Как я могу это предотвратить? Или есть лучший способ добиться этого?
Примечание. Я попытался использовать JSON.parse()
но он все тот же.