3.6 服务类组件

本节将介绍的3种主要服务类组件,除了一些细微的差别外,它们都可以用于封装可复用的业务逻辑代码。

Angular提供了Provider来定义(注册)开发者自己的服务,服务的命名一般使用服务名称的小写形式(基本名),加上.service后缀。例:

     hello.service.ts

接下来我们将演示一下如何写一个服务类,并使用依赖注入。首先编写一个简单的hello.service:

     import { Injectable } from '@angular/core';

@Injectable() export class HelloService { printHello():void{ console.log('Hello Ionic'); } }

到app.module.ts中注册一个provider:

     // 引入HelloService类,from后面的是路径
     import { HelloService } from './hello.service';

//在构造函数中进行依赖注入 @NgModule({ … providers: [HelloService], … })

然后我们就可以到需要的页面中引入该服务了:

     import { HelloService } from './hello.service';

… //在构造函数中进行依赖注入 constructor(private helloService: HelloService) { // 调用printHello方法 this.helloService.printHello (); }

• 服务都是单例的,一旦创建则被缓存起来循环使用。

• 服务一旦实例化,将在整个应用的生命周期中存在,可以用来共享数据。

• 在需要使用的地方利用依赖注入机制注入服务。

• 依赖注入时,自定义的服务需要写在内置的服务后面。