将ajax请求数据从我的服务传递到组件(4)
我有一个服务,它从GET请求中检索数据,并将数据存储到两个变量中,我想将这些变量传递给我的组件—我可以看到服务中的所有数据,但我在组件中检索不到这些数据 当我在console.log()中调用这个.sidebarService.getMenuItems()时,它返回未定义的-任何想法 //边栏服务将ajax请求数据从我的服务传递到组件(4),ajax,angular,Ajax,Angular,我有一个服务,它从GET请求中检索数据,并将数据存储到两个变量中,我想将这些变量传递给我的组件—我可以看到服务中的所有数据,但我在组件中检索不到这些数据 当我在console.log()中调用这个.sidebarService.getMenuItems()时,它返回未定义的-任何想法 //边栏服务 import { Injectable } from '@angular/core'; import { HttpClient, HttpParams } from '@angular/common/
import { Injectable } from '@angular/core';
import { HttpClient, HttpParams } from '@angular/common/http';
import { UserService } from '../../services/user.service';
@Injectable()
export class SidebarService {
menu: any;
menuItems: any;
menuCategories: any;
constructor(private http: HttpClient, private userService: UserService) {
getMenuItems() {
if (this.userService.getAuth() != null) {
this.http.get('https://dev.mysite.com/api/calendar/auth',
{ params: new HttpParams()
.set('token', this.userService.getAuth().__token)})
.subscribe(data => {
console.log('data', data);
if (data !== undefined) {
this.menuItems = (data.menuItems !== undefined) ? data.menuItems : [];
this.menuCategories = (data.menuCategories !== undefined) ? data.menuCategories : [];
}
});
}
}
}
//边栏组件
import { Component, OnInit } from '@angular/core';
import { HttpClient, HttpParams } from '@angular/common/http';
import { UserService } from '../../services/user.service';
import { SidebarService } from './sidebar.service';
@Component({
selector: 'app-sidebar',
templateUrl: './sidebar.component.html',
styleUrls: ['./sidebar.component.scss'],
})
export class SidebarComponent implements OnInit {
menu: any;
menuItems: any;
menuCategories: any;
constructor(private http: HttpClient, private userService: UserService, private sidebarService: SidebarService) {
console.log('menuService', this.sidebarService.getMenuItems());
}
ngOnInit() {
}
objectKeys = function(obj) {
return Object.keys(obj);
}
}
您没有从
getMenuItems()
方法返回任何内容
您应该返回一个可观察的:
...
return this.http.get('...