non ho mai avuto tanti problemi in angular come su questo template (a questo punto penso sia il template che ha qualche impostazione che non conosco).
allora, ho questo service:
codice:
getById(id: number): Observable<Mostra> {
const url = 'assets/fake_data/mostre.json';
return this.http.get<Mostra[]>(url).pipe(
map(
dd => dd.find(res => res.id == id)
)
);
}
nel componente faccio questo:
codice:
import {Component, OnInit} from '@angular/core';
import {ActivatedRoute} from '@angular/router';
import {Mostra} from '../../../../_interfaces/mostra';
import {Opera} from '../../../../_interfaces/opera';
import {MostreService} from '../../../../_services/mostre.service';
import {Title} from '@angular/platform-browser';
import {Observable} from 'rxjs';
@Component({
selector: 'app-mostra',
templateUrl: './mostra.component.html',
styleUrls: ['./mostra.component.scss']
})
export class MostraComponent implements OnInit {
id: string;
titolo: string;
mostra: Observable<Mostra>;
constructor(
private route: ActivatedRoute,
private titleService: Title,
private mostreSrv: MostreService,
) {
}
ngOnInit(): void {
this.id = this.route.snapshot.paramMap.get('id') ?? '0';
this.titolo = 'ND';
this.getData();
}
getData(): void {
this.mostra = this.mostreSrv.getById(Number(this.id));
this.mostra.subscribe(obj => {
this.titleService.setTitle(obj.titolo);
this.titolo = obj.titolo;
});
}
}
poi nella pagina:
codice:
<p>{{mostra | async}}</p>
<p>{{titolo}}</p>
questo quello che vedo:
codice:
[object Object]
ND
dove sbaglio???