AngularFire2を使用してFirebaseの場所に格納されたデータでフォームを事前入力することができません。テンプレートのような複数の入力があります。AngularFire2オブジェクトを使用した事前充填フォームObservable
<form (ngSubmit)="onSubmit(propertyForm.value)" #propertyForm="ngForm">
<div class="form-group">
<md-input-container>
<input md-input placeholder="Postcode" type="text" id="postcode" required [(ngModel)]="model.postcode" name="postcode">
</md-input-container>
</div>
</form>
これを、モデル(プロパティ)を直接、私は、フォームに表示するオブジェクトへのコンストラクタのリンクを持つコンポーネントに接続します。
export class PropertyFormComponent implements OnInit {
model: FirebaseObjectObservable<Property>;
submitted = false;
propertyForm;
constructor(private propertyService: PropertyService, af: AngularFire) {
this.model = af.database.object('/properties/MGQ34xmYDdT8IGLaj3zvBwZjWgW2');
}
}
私はフォームを送信してオブジェクトを更新することができますように、オブジェクトのパスが正しいことを知っているが、ngModelバインディングはFirebaseオブジェクトに参加していないと私は理由を理解することはできません。 Firebaseオブジェクトを手作りオブジェクトで置き換えようとしましたが、うまくいきました。助けてくれてありがとう!
オブジェクトi sは未定義です。私はこれがタイミング問題かもしれないと思うコンソールログは、このモデルを示して正しいですが、すべてのエラーの後に来る –
あなたは歓迎です!そして、未定義のエラーについて:これは非同期なので、データが取得される前にビューがレンダリングされるので、 '* ngIf * 'を使って解決できるので、'
偉大な、それはここからそれを動作させるために十分に私を与える必要があります。ありがとう! –