创建单一可复用的数据服务

来源:互联网 发布:java如何换行输出 编辑:程序博客网 时间:2024/06/07 19:07

本章说明如何将一组数据重构为一个单独的服务,他将会提供数据,并把服务在所有需要服务的组件间共享。

1.创建hero.service.ts的文件
(文件命名约定是:
服务名称的小写形式(基本名),加上.service后缀。 如果服务名称包含多个单词,我们就把基本名部分写成中线形式 (dash-case)。 例如,SpecialSuperHeroService服务应该被定义在special-super-hero.service.ts文件中)

2.服务命名导出与可注入服务

import { Injectable } from '@angular/core';@Injectable()export class HeroService {}

@Injectable()装饰器很重要,当ts看到这个时,就会记下本服务的元数据。如果angualr需要往这个 服务中注入其他依赖,就会使用这些元数据。

3.获取英雄数据
(1)建立一个桩方法:

@Injectable()export class HeroService {  getHeroes(): void {} // stub}

解析:HeroService可以从任何地方获取Hero数据 —— Web服务、本地存储或模拟数据源。 从组件中移除数据访问逻辑意味着你可以随时更改这些实现方式,而不影响需要这些英雄数据的组件。
(2)建立数据文件:mock-heroes.ts

import { Hero } from './hero';export const HEROES: Hero[] = [  { id: 11, name: 'Mr. Nice' },  { id: 12, name: 'Narco' },  { id: 13, name: 'Bombasto' },  { id: 14, name: 'Celeritas' },  { id: 15, name: 'Magneta' },  { id: 16, name: 'RubberMan' },  { id: 17, name: 'Dynama' },  { id: 18, name: 'Dr IQ' },  { id: 19, name: 'Magma' },  { id: 20, name: 'Tornado' }];
原创粉丝点击