在angular中,我们需要创建@Injactable服务类并将其提供给我们的项目。
理论上我们也可以导入作为单例服务执行的es6模块。
除了这不是“有角度的方式”之外,为什么这种方法不常见?
角度方式
import { Injectable } from '@angular/core';
@Injectable()
export class fo {
getFo():{
}
}
es6 way
const bla = []
const fo() => {return bla}
export {
fo
}
答案 0 :(得分:2)
@Injectable()
仅在您的服务注入其他服务时才需要。
示例:
@Injectable()
export class fo {
constructor(private myOtherService: MyOtherService){}
}
除此之外,你是对的,返回const
几乎是一回事。但是,正如您所理解的那样,添加注释和逻辑是一种好习惯。
来源:https://angular.io/docs/ts/latest/cookbook/dependency-injection.html#!#-injectable-
从技术上讲,只有具有自己依赖关系的服务类才需要@Injectable()装饰器
<小时/> 不久,我们使用
@Injectables
来获取/设置数据,并在组件和整个应用程序之间进行通信,这些应用程序是我们的依赖注入树的一部分。
关于您应该使用@Injectable()
的原因的官方文档有更深入的指南。
为何选择@Injectable()?
@Injectable()
标记一个类可用于实例化的注入器。一般来说,在尝试实例化未标记为@Injectable()
的类时,注入器会报告错误。
来源:https://angular.io/docs/ts/latest/guide/dependency-injection.html#!#why--injectable--