问题描述
您好,谢谢您,
我对{{value_expression}}有疑问。我将运行一个使用Drupal 9中的REST api的小型应用程序。我的列表组件可以正常工作,但是当我单击我的详细信息页面时我不会收到任何信息,但是当我使用{{object | json}}时,它将输出整个(与硬币网址有关,请参见示例)api,因此它正在接收其数据。
我使用的是
- 角度10
- Drupal 9
示例json管道{{ico | json}}
[ { "title": "Coin","body": "<p>This is just the description about the Coin project</p>\r\n","field_coin_uri": "name-of-coin","field_coin_symbol": "SYMB" } ]
Data.service.ts:
getIcoDetail(field_coin_uri: string) : Observable<Icos> {
const url = `${this.ApiUrl}/coins/${field_coin_uri}`;
return this.http.get<Icos>(url);
}
detail.component.ts:
export class IcoDetailComponent implements OnInit {
ico: Icos;
constructor(
private route: ActivatedRoute,private dataService: dataService
) { }
ngOnInit() {
const field_coin_uri = this.route.snapshot.paramMap.get('field_coin_uri');
console.log(field_coin_uri);
this.dataService.getIcoDetail(field_coin_uri).subscribe( ico => this.ico = ico );
}
}
detail.component.html
<div *ngIf="ico">
{{ ico|json }}
<h3>{{ ico.title }}</h3>
<p>{{ ico.body }}</p>
</div>
如果需要任何信息来回答我的问题,请告诉我,我会为您提供。
解决方法
您从API接收的信息是一个数组。您需要使用索引值访问它,并检查以下各项是否可行。
this.dataService.getIcoDetail(field_coin_uri).subscribe( ico => this.ico = ico[0] );