私は新しく、データサービスからFormGroupにデータをバインドする際に問題があります。ビューのプロパティにアクセスできますが、フォームグループを作成して初期のフォームコントロール値を設定しようとするコントローラ内では、同じプロパティが未定義です。コントローラの角2のプロパティにアクセスできない
モデル
export class Dog {
constructor(
id: number,
name: string,
age: number
) { }
}
サービス
getDog(): Promise<Dog> {
return this.http.get(this.baseUrl + '/api/endpoint').toPromise().then(res.json());
}
コンポーネント 私はその後、私のようなコンポーネントからこのサービスを呼び出す:
export class DogComponent implements OnInit {
form: FormGroup;
dog: Dog;
constructor(private service: DogService, private fb: FormBuilder) { }
ngOnInit(): void {
this.getData();
this.createForm();
}
getData() {
this.service.getDog().then(res => this.dog = res);
}
createForm() {
this.form = this.fb.group({
id: [this.dog.id],
name: [this.dog.name],
age: [this.dog.age]
});
}
}
ビュー
<form [formGroup]="form">
<input formControlName="name" />
<input formControlName="age" />
</form>
私は[値] =「名前」のような入力値を設定することですが、私はCreateFormの方法でそれらを設定することができるようにしたいです。プロパティがビューには使用可能で、コントローラ内には存在しない理由はありません。
可能な複製(HTTPSを理解するのに役立ちますhttp://www.google.com/support/tooloverflow/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) – Igor
また、あなたのサービスはコンパイルしてはならず、 'then'ステートメントを見てください。 – Igor