html - 在 html 模板中的 json 中查找特定 id 的对象
问题描述
我正在写我呈现帖子的页面。
在我的控制器中,我有:
export class PostsComponent implements OnInit {
posts$: Object;
users$: Object;
constructor(private data: DataService) { }
ngOnInit() {
this.data.getPosts().subscribe(
data => this.posts$ = data
)
this.data.getUsers().subscribe(
data => this.users$ = data
)
}
}
在模板中,我遍历帖子以呈现它们:
<h1>Posts</h1>
<ul>
<li *ngFor='let post of posts$'>
<h3>{{ post.title }}</h3>
<h5>created by:</h5>
<p>{{ post.body }}</p>
</li>
</ul>
在“创建者:”之后,我想添加post.userId 的用户来自哪里{{user$.username}}
(已经在控制器中初始化)。方法和工作正常并从https://jsonplaceholder.typicode.com获取数据。我也写了方法,我想我可以使用那个方法。它应该在控制器中:user$
users$
getUsers
getPosts
getUser(id)
this.data.getUser(id).subscribe(
data => this.users$ = data
)
id
但是当我遍历模板中的帖子时,我不知道从哪里得到。你能帮我解决这个问题吗?
解决方案
您可以getUser(id)
在组件中创建一个函数并让它返回用户。
在你的 html
{{ getUser(post.userId) }}
.
或者
this.data.getPosts().subscribe(
data => {
for(let i = 0; i < data.length; i++) {
data[i].username = this.getUser(data[i].userId);
}
this.posts$ = data;
})
推荐阅读
- r - 在虚拟变量(或接近)之前/之后一年创建事件(虚拟)
- windows - 使用标准输出作为日志路径
- reactjs - 在 React 应用程序中使用 typescript 超链接到 pdf 文件
- java - IntelliJ 无法加载 Maven 依赖项
- ios - scrollView 中只添加了第一个 customUIView
- java - 如何处理 DatabaseException 异常?
- php - 删除 index.php 时如何通过 CLI 执行 Codeigniter 端点
- java - 为什么使用封闭类的实例,静态嵌套类不能实例化?
- vba - 如何使用 Office 脚本自动过滤数据透视表?
- node.js - 在 Pop-OS/Ubuntu 更新后找不到模块“../build/Release/zmq.node”