angularjs - 将值传递给同级组件
问题描述
我想将事物数组的值传递给同一级别的组件。我的应用程序的结构是:
- 侧边栏组件
- 数据服务
- 身体.组件。
在侧边栏组件中,我得到了按钮,单击时我正在访问 API。
sidebar.component.ts
export class SidebarComponent implements OnInit {
things : Thing [] = [];
ngOnInit(): void {
}
onClick(user): void {
this.dataService.getThings(user.item.id).subscribe(
data => {
this.things = data.items;
}
)
}
}
数据服务.ts
@Injectable({
providedIn: 'root'
})
export class DataService {
constructor(private httpClient: HttpClient) { }
public getThings(id): Observable<ThingsResources> {
return this.httpClient.get<ThingsResources>(this.thingsUrl + id);
}
}
边栏.html
<div>
<ng-container *ngFor= "let things of things">
<div>
<span>{{things.name}}</span>
</div>
</ng-container>
</div>
并且在 sidebar.html 中显示事物值效果很好,但我想在正文中显示这些值以显示它
正文.html
<div>
<ng-container *ngFor= "let things of things">
<div>
<span>{{things.name}}</span>
</div>
</ng-container>
</div>
侧边栏和正文组件不是子组件和父组件。我猜@Input 和@Output 将不起作用。有什么想法如何传递这些值?
解决方案
1-我在这里看到冲突,你声明了与你的容器同名的 var。
<ng-container *ngFor= "let things of things">
2-为什么ng-container
!你可以在 div 中循环
<div>
<div *ngFor= "let thing of things">
<span>{{ thing.name }}</span>
</div>
</div>
3-您可以通过GetThings
在您的函数中创建一个函数来传递值,DataService
然后像这样调用该函数(在将其注入之后Body
)
<div *ngFor= "let thing of dataServ.GetThings()">
或者你可以在sidebar
.
推荐阅读
- java - 如何使用 WSO2 API Manager 加密/解密有效负载?
- cookies - 未使用 WooCommerce 4.4.1 的活动版本测试已安装版本
- r - 在 R tibble 中的特定位置提取项目
- swift - 究竟如何在后台线程上渲染 Metal?
- html - 自定义工具提示不适用于 fontawesome 图标
- javascript - 如何在交换机内部使用路由器链接
- javascript - 角色检查器机器人 - Discord.js - ReferenceError:未定义成员
- html - 允许文本换行而不允许其他元素换行?
- java - 基于页面的Birt组头
- vim - 在vim中删除直到第二个正斜杠