Я получаю данные от вызова API, которые мне уже удалось отобразить в таблице. Теперь, когда вы нажимаете на какой-либо элемент таблицы, я хочу показать более детальный вид этого элемента.
Поэтому, когда я открываю ссылку localhost: 4200 / detail / 12, я хочу отобразить данные из объекта с id = 12. Но я не могу понять, как это сделать.
В настоящее время я получаю идентификатор выбранного человека, подобный этому, от people.component.html
...
<tr *ngFor="let data of data" routerLink="/detail/{{data.person_id}}">
<td>{{data.person_id}}</td>
<td>{{data.name}}</td>
</tr>
...
Данные API представлены в формате JSON:
[{"person_id":"1","name":"Tom"},{"person_id":"2","name":"Clarissa"},{"person_id":"4","name":"Micky"},...]
, но отображаемые (в браузере) данные регистрируются как объекты JavaScript:
0:
person_id: 1
name: "Tom"
2:
person_id: 2
name: "Clarissa"
3:
person_id: 4
name: "Micky"
...
Итак, как мне адаптировать people-detail.component.ts и people-detail.component.html котображать только данные выбранного элемента (например, с person_id = 12) вместо всех элементов (то, что происходит в настоящее время)?
Вот так выглядит мой people-detail.component.ts в настоящее время
...
export class PeopleDetailComponent implements OnInit {
public data: any = []
constructor(
public http: HttpClient,
private route: ActivatedRoute) { }
getData(){
const person_id = +this.route.snapshot.paramMap.get('person_id');
const url ='http://localhost:4000/api/allpeople'
this.http.get(url).subscribe
(data => this.data = data);
}
ngOnInit() : void{
this.getData()
}
и это мой текущий people-detail.component.html:
<div *ngFor="let data of data">
<div>
<span>id1: </span>
{{data.regulation_id}}
</div>
</div>