Как импортировать сервис из другого модуля в Angular 6 - PullRequest
0 голосов
/ 13 декабря 2018

Tech : с использованием угловых 6, угловых значений и машинописи.

Сценарий :

У меня есть модуль приложения и основной модуль

Я хочу, чтобы компоненты моих модулей приложений использовали службы из моего основного модуля.

Мой основной модуль содержит список служб:

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

// Services
import { AuthService } from './services/auth.service';

@NgModule({
  declarations: [
  ],
  imports: [
  ],
  providers: [
    AuthService
  ]
})
export class CoreModule { }

Это мой модуль приложения:

import { BrowserModule } from '@angular/platform-browser';
import { CommonModule } from '@angular/common';
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';

import { AppComponent } from './app.component';

// Modules
import { CoreModule } from './core/core.module';

// Sections
import { COMPONENTS } from './components/index';
import { ROUTES } from './app.routes';

@NgModule({
  declarations: [
    AppComponent,
    COMPONENTS
  imports: [
    CommonModule,
    FormsModule,
    BrowserModule,
    HttpClientModule,
    ReactiveFormsModule,
    RouterModule.forRoot(ROUTES),
    CoreModule
  ],
  providers: [
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

Примечание: Как видите, я импортируюCoreModule.

Это мой компонент из модуля приложения (он вызывает основной модуль для получения AuthService):

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

// This Auth Service import not working (says service not exported)
import { AuthService } from '../../core/core.module';

@Component({
  selector: 'app-contact',
  templateUrl: './contact.component.html'
})
export class ContactComponent {

  constructor(
    private authService: AuthService
  ) {}
}

Issue : Я пытаюсь импортировать сервис в компонент модулей моего приложения, который называется компонентом контакта, например:

import { AuthService } from '../../core/core.module';

Ошибка, которую я получаю:

Сервис не экспортированчлен основного модуля.

Результат: Я хочу, чтобы мой компонент контактов из модуля приложения импортировал службу основного модуля с именем AuthService.

1 Ответ

0 голосов
/ 13 декабря 2018

Поскольку вы импортировали CoreModule в AppModule, где вы также удалили ContactComponent (кажется в COMPONENTS), оба компонента и принадлежат к тому же модулю здесь, чтобы они могли видеть друг друга.В ContactComponent нужно просто импортировать службу AuthService из ее реального местоположения (не ../../core/core.module) .

import { AuthService } from ' <...>/auth.service';
...