概念:依赖注入 是 用来 创建对象的。Angular认为,组件是用户交互的一种对象,其中的内容应该只与用户的操作有关。其余内容应该剥离出去,放在“服务对象”中,为组件提供服务。
这样理解:一个班级里有23个学生,每个学生都要买午餐。一般情况,每个人自己去买一份。现在来了一个服务供应,一次性拉了所有的午餐。并且按照每个人喜好都配好。
替换一下:一个文件夹下,23个组件,每个组件都要生成一个独一无二的二维码。一般情况,每个组件自己生成自己的。现在来了一个“二维码.service.ts”,帮每个组件都生成一个二维码,并且独一无二。
步骤:
1. 使用CLI
ng g service xxxx
2.出现service文件夹以@injectable修饰的class。
3. 在模块中使用import来引入服务,配置服务。写在provider[ ]中。
4. 在服务文件下写入你要提供的各种方法,属性等
5. 在组件中使用服务,首先import进来,之后在构造器constructor()里初始化一个服务对象。再在构造器的花括号{ }使用this关键字来调用服务。
注入的三种方式:
1.根目录提供商,在所有组件中都可以用
@Injectable({
providedIn:'root'
})
2.模块内可用的提供商
@NgModule({
providers:[
TodosService
]
})
3.组件内可用的提供商(其子组件可以用,但是兄弟组件不能用)
@Component({
providers:[TodosService]
})