arrays - 异步调用后数据未呈现在 html 文件中
问题描述
我正在调用一个 api,它返回有关单个博客文章的响应数据。但它没有在 html 页面中呈现。此代码返回一个控制台错误,如
错误类型错误:无法读取 Object.updateRenderer 处未定义的属性“渲染”(post.component.html:3)
但我尝试使用safe-navigation
likeblogpost?.content.rendered
和blogpost?.content?.rendered
,两者都没有引发任何控制台错误,但也没有呈现数据。我在这里做错了什么?
在这两种情况下,{{blogpost | json}}
这都有效,但innerHTML
不起作用
服务
getPost(slug: string): Observable<PostRawModel> {
const url = 'https://blog.varanjith.com/wp-json/wp/v2/posts?slug=' + slug;
return this.http.get<PostRawModel>(url);
}
控制器
export class PostComponent implements OnInit {
post$: Observable<PostRawModel>;
constructor(private route: ActivatedRoute, private blogService: BlogService) { }
ngOnInit() {
this.route.paramMap.subscribe(params => {
this.post$ = this.blogService.getPost(params.get('slug'));
});
}
}
看法
<div *ngIf="(post$ | async) as blogpost">
{{blogpost | json}}
<div [innerHTML]="blogpost.content.rendered"></div>
</div>
更新#1
我没有粘贴 json 数据,因为它会使这篇文章变得一团糟,所以请点击链接查看 json 数据。https://blog.varanjith.com/wp-json/wp/v2/posts?slug=merging-two-observables-using-forkjoin
更新#2
我现在正在创建一个 stackblitz,将使用正在运行的代码更新这个问题。
解决方案
blogpost
是一个数组,要访问其中的对象,您需要使用适当的索引:
blogpost[0].content.rendered
推荐阅读
- c++ - 在 std::unordered_set/std::unordered_map 中 KeyEqual 的用处
- reactjs - 类型错误:rzp.open 不是函数
- polymer - 如何使用聚合物 3.x 中的对象绑定值?
- excel - 产品唯一计数列表,跳过空白,跳过黑名单,跳过数字
- python - Discord.py - 在 embed.fields.1.value: This field is required 错误
- c# - 为什么我的视图模型在发布到控制器时只返回最后一个值?
- javascript - 动态创建 ul & li
- android - 如何在保持菜单结束的同时将 AndroidX 工具栏文本居中对齐?
- android - 缺少 LocationManager 所需的权限
- java - 客户端验证最小值为 1 的非强制整数字段