Я пробовал много вещей, чтобы заставить ngModel работать на моей странице редактирования, но это дает мне ошибку. Ошибка occures beacause ngModel пытается получить данные перед их загрузкой. См. Мой код ниже.как ждать компонента рендеринга до тех пор, пока все данные не будут собраны в Angular 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