ルータのパラメータ(id)をngFormに渡してからイベントエミッタに渡すのが少し難しいです。ここで私はIDを取得する方法です - 最初のconsole.logが正常に動作するのを見ると、ルータからIDを取得できます。今、私は私のsingleOpenHomeオブジェクトにこれを割り当てる(ただし、未定義のエラーを取得する)しようとしています:Angular2 - ngFormに変数としてルータパラメータを渡します
@Input() singleOpenHome: OpenHomeModel;
ngOnInit() {
// Get the slug on it from the router
this.route.params.forEach((params: Params) => {
let id = params['propertyID'];
console.log('id on the child is:'+id);
//this.singleOpenHome.propertyID == id; Cannot read property 'propertyID' of undefined
});
}
は、今私は、フォームにこれを渡したいと思っています:
<form class="my2" #form="ngForm" (ngSubmit)="handleSubmit(form.value, form.valid)" novalidate></form>
ここに私のイベントemmitterは次のとおりです。
@Output()
update: EventEmitter<OpenHomeModel> = new EventEmitter<OpenHomeModel>();
constructor(private route: ActivatedRoute) {}
handleSubmit(sinlgeOpenHome: OpenHomeModel, isValid: boolean) {
if (isValid) {
this.update.emit(sinlgeOpenHome);
}
}
すべてのヘルプは、私が変換に特に関連する問題を経験した
あなたが示したコードはすべて同じコンポーネントに属していますか?はいの場合は、ルートプロパティをクラスプロパティ(this.id = params ['propertyID']; ')に割り当てるだけで、コンポーネントまたはそのテンプレートのどこからでもプロパティにアクセスできます。 – AngularChef
試してみました:this.singleOpenHome.propertyID = params ['propertyID'];しかし、私は{{singleOpenHome.propertyID}}のようなテンプレートの値を表示することはできません。 – rhysclay
私は分かりません。私が提案したコードを試してみませんか?表示されたコードはすべて同じコンポーネントに属していますか? – AngularChef