Angular的DI(依赖注入)

DI:依赖注入,是一种设计模式,很多优秀的框架都实现了这种模式,比如spring框架。angular自身也实现了一套依赖注入,只需要把主要的服务在用到的类的构造函数注入就可以。

一般我们需要依赖注入的都是一些获取数据的服务,要让一个类成为可注入的服务就需要使用@Injectable()装饰器。
设置注入服务有三种方式,三者选其一即可
在服务本身的 @Injectable() 装饰器中。
在 NgModule 的 @NgModule() 装饰器中。
在组件的 @Component() 装饰器中。

@Injectable() 装饰器这种设置注入的方式是最常用也是用cli命令自动生成的。providedId:"root"表示在根模块中注入,在root模块的 @NgModule()中注入是一样的。

@Injectable()装饰器标记注入

@Injectable({
	providedIn: "root"
})
export class UserService(){
	constructor() {}

	getUser() {}
}

@NgModule() 装饰器中标记注入

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    FormsModule
  ],
  providers: [
   	UserService //设置注入服务
  ],
  bootstrap: [AppComponent]
})

export class AppModule {
}

@Component() 装饰器中标记注入

@Component({
  selector: 'app-example',
  templateUrl: './example.component.html',
  styleUrls: ['./example.component.scss'],
  providers: [UserServcie]  //设置注入服务
})
export class ExampleComponent{
	constructor() {}
}

在某个注入器的范围内,服务是单例的。也就是说,在指定的注入器中最多只有某个服务的最多一个实例。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值