Angular 6: сервисы с обеспеченнымIn: 'root' возвращает пустой компонент в компоненте - PullRequest
0 голосов
/ 14 ноября 2018

Моя служба расположена в 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 {}

Ответы [ 2 ]

0 голосов
/ 23 июня 2019

То же самое произошло со мной в Angular 8.

Я добавил public перед функцией, затем она начала работать:

public test()
0 голосов
/ 14 ноября 2018

Таким образом, он возвращает объект, и это означает, что служба инициализируется правильно, а не console.log(this.api);попробуйте console.log(this.api.test()), вы должны увидеть hello from services в консоли.

...