Ошибка углового статического инжектора - нет поставщика для API - PullRequest
0 голосов
/ 05 февраля 2019

Я создал один проект угловой библиотеки, который имеет один компонент и один раз api (UserApi) (абстрактный класс).У меня есть другой проект, который использует эту библиотеку.Этот проект также имеет службу (UserService реализует UserApi), которая реализует API библиотеки.

В файле модуля моего проекта я добавил провайдера, используя следующий код.

{ provide: UserApi, useExisting: UserService }

Теперь есть два способа получить оператор импорта для UserApi.

import { UserApi } from 'mylibrary'; или import { UserApi } from 'projects/mylibrary/src/public_api';

Первый - правильный путь.Тем не менее, это не работает, когда я использую первый импорт.Это работает, когда я использую второй импорт.Но я не могу выпустить свой код со второй строкой.После дальнейшей проверки я обнаружил, что, когда я обращаюсь к UserApi из выпущенной библиотеки, он доступен через файл определения.

и код похож на

import { Observable } from 'rxjs/Observable'; export declare abstract class UserApi { abstract getConfigName(): Observable<string>; }

В моем исходном коде у меня нет ключевого слова «объявлять», пока оно есть в выпущенном коде.И по этой причине мой проект не может использовать предоставленную услугу.

Как это можно исправить?

Обновление: Код из public_api

`

 export * from './lib/user-shared.service';
 export * from './lib/user-shared.component';
 export * from './lib/user-shared.module';
 export * from './lib/component/usermanager.component';
 export * from './lib/coreapi/userapi';

`

...