Service(服务)

1、Service是封装了某一特定功能的独立模块;

2、它可以通过注入的方式供别的模块使用;

3、Service分为很多种,包括:值、函数以及应用所需的特性;

4、最简单的Service

import { Injectable } from '@angular/core';
import { ApiService } from '@angularui/devcloud/services'; @Injectable()
export class LentestService {
USERS: Array<any>;
constructor(private api: ApiService){ // 依赖注入
this.USERS = [
{id:1, name:'a'},
{id:2, name:'b'},
{id:3, name:'c'},
];
}
getUsers(){
return this.USERS;
}
}

这里要提下依赖注入(Dependency Injection,DI):

通过DI,对象(这里指Service对象)在被创建时,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它,就是说,依赖被注入到对象中。

依赖注入一般放在Service的构造函数的参数那块,如上述例子的

constructor(private api: ApiService)

相对应的,在Angular创建组件时,会首先为组件所需的服务找一个注入器(Injector),也就是上面说的外界实体;

Injector时一个维护服务实例的容器,存放着以前创建的实例;

如果Injector中还没有ApiService的服务实例,Injector就会创建一个ApiService实例并添加到Injector中,然后返回给Angular;

最后当所有依赖的服务都被解析完并返回时,Angular会以这些依赖服务为参数调用组件的构造函数,从而创建组件;

上一篇:Node.js学习——HTTP


下一篇:linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)