angular - Angular - 在控制台中获取json值但不在视图中
问题描述
电影/id/external_ids?api_key=myapikey
{"id":335984,"imdb_id":"tt1856101","facebook_id":"BladeRunner2049","instagram_id":"bladerunnermovie","twitter_id":"bladerunner"}
想要显示所有社交 id 的值,例如 facebook、insta 和 twitter。不知道我在做什么
零件:
import { Component, OnInit } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { ActivatedRoute } from '@angular/router';
import { MoviesService } from '../movies.service';
@Component({
selector: 'app-movie',
templateUrl: './movie.component.html',
styleUrls: ['./movie.component.css']
})
export class MovieComponent implements OnInit {
movie: Object;
external_ids: Array<Object>;
constructor(
private _moviesServices: MoviesService,
private router: ActivatedRoute ) {
}
ngOnInit() {
this.router.params.subscribe((params) => {
const id = params['id'];
this._moviesServices.getMovie(id).subscribe(movie => {
this.movie = movie;
});
this._moviesServices.getExternalIds(id).subscribe((res: any) => {
console.log(res.facebook_id);
this.external_ids = res.external_ids;
});
})
}
}
HTML
<p *ngFor="let social of external_ids" class="text-primary" >
<span *ngIf="social.facebook_id.length > 0" class="mr-3">
{{social.facebook_id}}
</span>
</p>
解决方案
你试图ngFor
在一个对象上使用。ngFor
只能遍历数组。似乎更容易直接在 UI 中显示它们,external_ids.facebook_id
但如果你真的想ngFor
通过循环对象来显示所有这些,你可以使用Object.keys
来获取一个数组ngFor
Object.keys
首先从您的组件中公开。
objectKeys = Object.keys;
然后在你的 HTML 中使用它
<p *ngFor="let social of objectKeys(external_ids)" class="text-primary">
{{external_ids[social]}}
</p>
我已经删除了ngIf
您想要显示所有社交 ID 的假设。
如果您想id
从您的对象中删除 (因为它看起来像一个用户 id 而不是社交 id)
this._moviesServices.getExternalIds(id).subscribe((res: any) => {
const {id, ...external_ids} = res;
this.external_ids = external_ids;
});
编辑:虽然上述方法可行,但您也可以使用KeyValuePipe将对象转换为数组以便对其进行迭代。这样你就不需要使用Object.keys
<p *ngFor="let social of external_ids | keyvalue" class="text-primary">
{{social.value}}
</p>
注意:该
keyValue
方法适用于 Angular 6+
这是StackBlitz上的一个工作示例。
推荐阅读
- php - 如何从 AJAX 修复未定义的 POST 索引?
- c# - 从 SQL Server 检索特殊字符的问题
- haskell - Haskell:约束中的非类型变量参数?
- artifactory - 如何使用 AQL 检索所有 docker 镜像的最新版本
- r - 使用从网站提取的数据在 R 上循环
- python - 通过python中的if条件附加列表
- github - 如何删除 github 上的分叉存储库?
- sampling - uvm_monitor - 不能正确采样。我哪里错了?
- google-cloud-platform - 我的 Google Cloud Shell 主目录的删除通知
- python - 为什么在 ConvLSTM 中设置 return_sequence = False 时会出错?