首页 > 解决方案 > Angular 6:带有providedIn的服务:'root'在组件中返回空对象

问题描述

我的服务位于src/core/services/api.service.ts

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class ApiService {

  constructor() { }

  test() {
    console.log('hello from services');
  }
}

我正在尝试从另一个模块中的组件调用此服务。

home.component.ts

import { Component, OnInit } from '@angular/core';
import {ApiService} from './core/services/api.service';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {

  constructor(private api: ApiService) { }

  ngOnInit() {
    console.log(this.api);
  }

}

但我得到一个像这样的空对象ApiService {}

标签: javascriptangularservicedependency-injection

解决方案


所以它返回一个对象,这意味着服务已正确初始化,而不是console.log(this.api); 试试console.log(this.api.test()),你应该hello from services在控制台中看到。


推荐阅读