【发布时间】:2019-09-18 22:38:15
【问题描述】:
我想用取自其他组件的值制作 Reactiev 表单。 要将数据传递给组件,我使用@Input。
例如:
import { Component, OnInit, Input } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
@Component({
...
})
export class GetData implements OnInit {
@Input() dataToPass: DataOne;
myForm: FormGroup;
ngOnInit() {
this.myForm = this.fb.group({
name: ['', [Validators.required]],
... }
}
我想在 HTML 中查看在 Input 中传递数据的表单。
有可能吗?我应该在哪里将数据传递给 Form?
新代码,根据您的提示:
ngOnChanges(changes: SimpleChanges) {
console.log(changes);
if (changes['this.dataToPass'] && changes['this.dataToPass'].currentValue) {
console.log('change');
}
if (changes['this.dataToPass'].firstChange === true) {
console.log('Change is seen');
}
}
第一个条件不成立。 第二个,我得到错误: 错误类型错误:无法读取未定义的属性“firstChange”。
下一个代码:
if (changes['dataToPass'].firstChange && changes['dataToPass']) {
console.log('Change is seen');
console.log(this.dataToPass.firstName);
}
我得到的是:“错误类型错误:无法读取未定义的属性 firstName。”
看起来输入发生在此类更改之后。
下一个代码:
if (changes['dataToPass'].firstChange && changes['dataToPass']) {
console.log('Change is seen');
console.log(this.dataToPass);
}
不幸的是,我得到了一个未定义的信息。 所以它不能正常工作。
【问题讨论】:
-
你检查了我的答案,你还有问题吗?
-
任何更新家伙?不知道为什么它不起作用。
-
我认为你很接近,检查我更新的答案????我已经包含了一个演示
标签: angular input angular-reactive-forms