編集ページでngModelを使用するには多くのことを試しましたが、エラーが発生します。 ngModelはデータがロードされる前にデータを取得しようとします。以下の私のコードを見てください。すべてのデータが角2に集まるまでレンダリングコンポーネントを待機させる方法
ProductEditComponent
import 'rxjs/add/operator/switchMap';
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { Location } from '@angular/common';
import { Product } from './../shared/product.model';
import { ProductService } from './../shared/product.service';
@Component({
selector: 'product-edit',
template: require('./product-edit.component.html'),
providers: [ProductService]
})
export class ProductEditComponent implements OnInit {
product: Product;
name2: boolean = false;
constructor(
private productService: ProductService,
private route: ActivatedRoute,
private location: Location,
private router: Router
) { }
ngOnInit(): void {
var test = this.route.params
.switchMap((params: Params) => this.productService.getProduct(+params['id']))
.subscribe(product => this.product = product).closed;
console.log(test);
if (test['closed']) {
this.name2 = true;
}
}
goBack(): void {
this.location.back();
}
onSave(): void {
this.router.navigate(['product-edit', this.product]);
}
}
ProducEdit HTML
<div class="product-edit">
<h2>Edit: {{product?.name}}</h2>
<div class="form-group row" *ngIf="name2">
<label for="name" class="col-2 col-form-label">Name</label>
<div class="col-10">
<input class="form-control" id="name" [(ngModel)]="name2" placeholder="" />
</div>
</div>
</div>
データがロードされ、私のコンポーネントをレンダリングするよりも、あるまで、どのように私は待つことができますか?
あなたは最高です!どうもありがとうございました – apero