创建服务

  1. ng g s service/hero
  1. import { Injectable } from '@angular/core';
  2. @Injectable({
  3. providedIn: 'root'
  4. })
  5. export class HeroService {
  6. constructor() { }
  7. // 自定义方法
  8. getHero() {
  9. return 'HeroService'
  10. }
  11. }

依赖注入并使用

  1. // src/app/app.component.ts
  2. import { HeroService } from './service/hero.service';
  3. export class AppComponent {
  4. // 如果想要在组件中使用 heroService private 需要替换为 public
  5. constructor(private heroService: HeroService) {
  6. console.log(this.heroService.getHero())
  7. }
  8. }
  • 为了清晰和可维护性,建议你在单独的文件中定义组件和服务
  • 如果你确实要将组件和服务合并在同一个文件中,则必须先定义服务,再定义组件,这一点很重要。如果在服务之前定义组件,Angular 将返回运行时的空引用错误