背景:
- Angular CLI 6 引入了工作区的概念。
- 一个工作区可以包含多个项目。
- 工作区和项目的配置都在工作区根目录下的 'angular.json' 文件中。
- 每个项目可以是应用程序或库。
- CLI 可以使用如下命令生成一个库项目:
ng generate library forms-lib
- 此命令创建一个类型为“library”的项目,并包含组件和服务,同时导出该组件。
问题:
我一直在尝试创建一个库,并使其中的服务可供需要它们的应用程序使用,但一直没有成功。
以下代码无法正常工作:
import { NgModule } from '@angular/core';
import { FormsLibComponent } from './forms-lib.component';
import { FormsLibService } from './forms-lib.service';
@NgModule({
imports: [],
declarations: [FormsLibComponent],
exports: [FormsLibComponent, FormsLibService],
})
export class FormsLibModule {
}
返回错误:
Uncaught Error: Can't export value FormsLibService from FormsLibModule
as it was neither declared nor imported!
有人能指点我一下吗?
谢谢。
@Injectable({ providedIn: 'root' })
的服务,这似乎意味着您不需要在库级别或应用程序模块中提供此服务(如果您想要一个单例服务)。它只会“正常工作”! - Keith Howie