Angularjs 将值传递给同一级别的组件
我想把数组的值传递给同一级别的组件。 我的应用程序的结构是:Angularjs 将值传递给同一级别的组件,angularjs,angular,typescript,Angularjs,Angular,Typescript,我想把数组的值传递给同一级别的组件。 我的应用程序的结构是: 边栏组件 数据服务 身体。部件 在侧边栏组件中,我得到了一个按钮,点击后,我点击了一个API 侧栏.component.ts export class SidebarComponent implements OnInit { things : Thing [] = []; ngOnInit(): void { } onClick(user): void { this.dataService.getThi
- 边栏组件
- 数据服务
- 身体。部件
export class SidebarComponent implements OnInit {
things : Thing [] = [];
ngOnInit(): void {
}
onClick(user): void {
this.dataService.getThings(user.item.id).subscribe(
data => {
this.things = data.items;
}
)
}
}
data.service.ts
@Injectable({
providedIn: 'root'
})
export class DataService {
constructor(private httpClient: HttpClient) { }
public getThings(id): Observable<ThingsResources> {
return this.httpClient.get<ThingsResources>(this.thingsUrl + id);
}
}
@可注入({
providedIn:'根'
})
导出类数据服务{
构造函数(私有httpClient:httpClient){}
公共getThings(id):可观察{
返回this.httpClient.get(this.thingsUrl+id);
}
}
sidebar.html
{{things.name}
在sidebar.html中显示thing值效果很好,但是我想在body中显示这个值
body.html
{{things.name}
侧边栏和主体组件不是子组件和父组件。我猜@Input和@Output将不起作用。
您知道如何传递这些值吗?1-我看到这里有冲突,您用容器的相同名称声明了var
<ng-container *ngFor= "let things of things">
3-您可以通过在数据服务
中创建一个GetThings
函数来传递值,然后像那样调用该函数(在将其注入正文
之后)
或者您可以在
侧栏中创建一个静态变量
我修复了上述两个问题。身体是我的组成部分。侧边栏也是我的组件。在这种情况下,我希望将东西从侧边栏传递到正文,以便在我的正文中使用它。htmlas我看到你已经有了服务,为什么不将此服务注入正文
并从中获取数据呢。(在您已经在服务表单侧栏
中设置了数据之后)或者您可以在侧栏
中使用静态变量。我按照您通过服务所说的做了。我将我的方法移动到服务,创建了getter并在body组件中使用它。谢谢
<div>
<div *ngFor= "let thing of things">
<span>{{ thing.name }}</span>
</div>
</div>
<div *ngFor= "let thing of dataServ.GetThings()">