发表于: 2021-02-04 23:54:54

1 1262


今天完成的事情:


Hero guide 创建特性组件

src/app/hero-detail


作为组件样式的 CSS 文件。

作为组件模板的 HTML 文件。

存放组件类 HeroDetailComponent 的 TypeScript 文件

HeroDetailComponent 类的测试文件


Hero guide 添加服务

服务存在的意义

组件不应该直接获取或保存数据,它们不应该了解是否在展示假数据。 它们应该聚焦于展示数据,而把数据访问的职责委托给某个服务


创建 HeroService

创建一个名叫 hero 的服务

ng generate service hero


app/hero.service.ts中生成 HeroService 类:

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

@Injectable({
  providedIn: 'root',
})
export class HeroService {

  constructor() { }
}



@Injectable() 服务

这个服务导入了 Angular 的 Injectable 符号,并且给这个服务类添加了 @Injectable() 装饰器

@Injectable() 装饰器会接受该服务的元数据对象,就像 @Component() 对组件类的作用一样


获取英雄数据

HeroService 可以获取数据:Web 服务、本地存储(LocalStorage)或一个模拟的数据源。

从组件中移除数据访问逻辑,意味着将来任何时候你都可以改变目前的实现方式,而不用改动任何组件


导入 Hero 和 HEROES

import { Hero } from './hero';
import { HEROES } from './mock-heroes';


添加一个 getHeroes 方法,让它返回模拟的英雄列表

getHeroes(): Hero[] {
  return HEROES;
}


提供(provide) HeroService

所谓服务提供者就是某种可用来创建或交付一个服务的东西

命令 ng generate service 会通过给 @Injectable() 装饰器添加 providedIn: 'root' 元数据的形式

@Injectable({
  providedIn: 'root',
})



未完成


问题:

状态不好,未能完成,早点休息


明天的计划:

继续学习服务,自己重新依照案例编写学习angular代码



返回列表 返回列表
评论

    分享到