Javascript 如何将一个同级组件的功能共享给另一个同级组件
在这里,我知道如何从json获取数据,但在基于引用另一个json的id从json检索数据时,我发现很困难。问题陈述在这里,我有一个api/users的json,其中包含10个用户,每个用户有10个博客还有一个api/posts的api,其中包含所有帖子。现在,我必须检索以下数据:当我点击user1时,必须显示与userid 1相关的博客 这是服务台Javascript 如何将一个同级组件的功能共享给另一个同级组件,javascript,angular,typescript,components,Javascript,Angular,Typescript,Components,在这里,我知道如何从json获取数据,但在基于引用另一个json的id从json检索数据时,我发现很困难。问题陈述在这里,我有一个api/users的json,其中包含10个用户,每个用户有10个博客还有一个api/posts的api,其中包含所有帖子。现在,我必须检索以下数据:当我点击user1时,必须显示与userid 1相关的博客 这是服务台 getUsers(): Observable<UserModel[]> { return this.http.get<UserMo
getUsers(): Observable<UserModel[]> {
return this.http.get<UserModel[]>(`${this._url}/users`)}
getUserBlogPosts(userId:number){
return this.http.get<BlogsModel[]>(`${this._url}/posts?userId=${userId}`)}
.blog.ts
ngOnInit() {
this.getBlogsList(); }
getBlogsList() {
let id = this.blog
this.service.getUserBlogPosts(id.userId).subscribe(
data=>{
console.log(data)
this.blogs=data;
}
)}
}
当我在控制台中单击onclick(users)时,我能够在用户组件中过滤这里的数据,我想让这个输出显示在blogs组件中如何做到这一点&在点击获取user1的blog后出现问题,它正在重定向到url/posts?userId=1,当我尝试编辑url/posts?userId=2时,它没有显示任何数据。如何解决此问题在您的情况下,您可以重用您的服务并从behaviorSubject发出数据 服务台
constructor() {
this._currentUser = new BehaviorSubject(null);
this.currentUser$ = this._currentUser.asObservable();
}
setCurrentUser(user) {
this._currentUser.next(user);
}
user.ts
ngOnInit() {
this.getUsersOnSubscribe() }
getUsersOnSubscribe(){
this.service.getUsers().subscribe(
data =>{
console.log(data);
this.users = data;
}
)}
onClickUser(users){
this.currentUser = users
let id = users.id
console.log(id)
this.service.getUserBlogPosts(id).subscribe(
data=>{
console.log(data)
this.currentUser = data
}) }
this.service.getUserBlogPosts(id).subscribe(
data=>{
this.currentUser = data
// Emits your value
this.service.setCurrentUser(this.currentUser)
}
)
blog.ts
this.service.currentUser.subscribe(
user => {
//The data you emitted from user.ts is available here, do your logic
}
)
在您的情况下,您可以重用您的服务并从behaviorSubject发出数据 服务台
constructor() {
this._currentUser = new BehaviorSubject(null);
this.currentUser$ = this._currentUser.asObservable();
}
setCurrentUser(user) {
this._currentUser.next(user);
}
user.ts
ngOnInit() {
this.getUsersOnSubscribe() }
getUsersOnSubscribe(){
this.service.getUsers().subscribe(
data =>{
console.log(data);
this.users = data;
}
)}
onClickUser(users){
this.currentUser = users
let id = users.id
console.log(id)
this.service.getUserBlogPosts(id).subscribe(
data=>{
console.log(data)
this.currentUser = data
}) }
this.service.getUserBlogPosts(id).subscribe(
data=>{
this.currentUser = data
// Emits your value
this.service.setCurrentUser(this.currentUser)
}
)
blog.ts
this.service.currentUser.subscribe(
user => {
//The data you emitted from user.ts is available here, do your logic
}
)
在点击获取user1的博客后,也出现了问题,它重定向到url/posts?userId=1,当我尝试编辑url到url/posts?userId=2时,它没有显示任何数据。如何解决此问题请创建一个新问题,描述您的问题在点击获取user1的博客后也有问题,它正在重定向到url/posts?userId=1,当我尝试编辑url到url/posts?userId=2时,它没有显示任何数据。如何解决此问题请创建一个新问题来描述您的问题