首页 > 解决方案 > Angular 静态注入器错误 - 没有 API 提供者

问题描述

我创建了一个 Angular 库项目,它有一个组件和一个 api (UserApi)(抽象类)。我有另一个使用这个库的项目。本项目还有一个实现库的api的服务(UserService实现UserApi)。

在我的项目模块文件中,我使用以下代码添加了提供程序。

{ 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>; }

在我的原始代码中,我没有'declare'关键字,而发布的代码有它。这就是我的项目无法使用提供的服务的原因。

如何解决这个问题?

更新: 来自 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';

`

标签: angularserviceabstract-classclass-libraryprovider

解决方案


推荐阅读