Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将ajax请求数据从我的服务传递到组件(4)_Ajax_Angular - Fatal编程技术网

将ajax请求数据从我的服务传递到组件(4)

将ajax请求数据从我的服务传递到组件(4),ajax,angular,Ajax,Angular,我有一个服务,它从GET请求中检索数据,并将数据存储到两个变量中,我想将这些变量传递给我的组件—我可以看到服务中的所有数据,但我在组件中检索不到这些数据 当我在console.log()中调用这个.sidebarService.getMenuItems()时,它返回未定义的-任何想法 //边栏服务 import { Injectable } from '@angular/core'; import { HttpClient, HttpParams } from '@angular/common/

我有一个服务,它从GET请求中检索数据,并将数据存储到两个变量中,我想将这些变量传递给我的组件—我可以看到服务中的所有数据,但我在组件中检索不到这些数据

当我在console.log()中调用这个.sidebarService.getMenuItems()时,它返回未定义的-任何想法

//边栏服务

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('...