上QQ阅读APP看书,第一时间看更新
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 (); }
• 服务都是单例的,一旦创建则被缓存起来循环使用。
• 服务一旦实例化,将在整个应用的生命周期中存在,可以用来共享数据。
• 在需要使用的地方利用依赖注入机制注入服务。
• 依赖注入时,自定义的服务需要写在内置的服务后面。