【发布时间】:2018-10-04 11:36:49
【问题描述】:
在创建模型驱动模板响应式表单时,当我从表单值创建模型对象时。然后模型对象正在失去它的 TYPE。
举个简单的例子:
模型课本:
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(),但还是一样。
【问题讨论】:
标签: angular typescript