共享模块常见内容
- 服务:可复用的业务逻辑,如数据获取服务。例如在电商项目中,商品数据获取服务
ProductService
,用于从后端API获取商品列表、详情等数据。
- 组件:通用的展示组件。像电商项目中的
ProductCardComponent
,用于展示单个商品的图片、名称、价格等信息,可在商品列表页和相关推荐模块复用。
- 管道:数据格式化处理。如
CurrencyPipe
,在电商项目中格式化商品价格为特定货币格式。
- 指令:用于DOM操作或添加特定行为。例如
HighlightDirective
,在商品列表中突出显示热门商品。
组织到共享模块的方式
- 创建共享模块:使用Angular CLI命令
ng generate module shared
生成共享模块SharedModule
。
- 组织服务:在
shared
目录下创建services
文件夹,将ProductService
等服务放入,在SharedModule
的providers
数组中注册服务,如:
import { NgModule } from '@angular/core';
import { ProductService } from './services/product.service';
@NgModule({
providers: [ProductService]
})
export class SharedModule {}
- 组织组件:在
shared
目录下创建components
文件夹,将ProductCardComponent
等组件放入,在SharedModule
的declarations
数组中声明组件,同时添加到exports
数组以便其他模块使用,如:
import { NgModule } from '@angular/core';
import { ProductCardComponent } from './components/product - card.component';
@NgModule({
declarations: [ProductCardComponent],
exports: [ProductCardComponent]
})
export class SharedModule {}
- 组织管道:在
shared
目录下创建pipes
文件夹,将CurrencyPipe
等管道放入,在SharedModule
的declarations
数组中声明管道,并添加到exports
数组,如:
import { NgModule } from '@angular/core';
import { CurrencyPipe } from './pipes/currency.pipe';
@NgModule({
declarations: [CurrencyPipe],
exports: [CurrencyPipe]
})
export class SharedModule {}
- 组织指令:在
shared
目录下创建directives
文件夹,将HighlightDirective
等指令放入,在SharedModule
的declarations
数组中声明指令,并添加到exports
数组,如:
import { NgModule } from '@angular/core';
import { HighlightDirective } from './directives/highlight.directive';
@NgModule({
declarations: [HighlightDirective],
exports: [HighlightDirective]
})
export class SharedModule {}
- 在其他模块中使用:在需要复用共享模块内容的模块(如
ProductListModule
)中导入SharedModule
,即可使用共享模块中的服务、组件、管道和指令。
import { NgModule } from '@angular/core';
import { SharedModule } from '../shared/shared.module';
@NgModule({
imports: [SharedModule]
})
export class ProductListModule {}