Service 用途

Service 是可以 injectable 的一種 class,

可以將 Angular Web App 的 業務邏輯 & 數據操作 Component 進行簡化,

改由 Service 負責提供 Component 所需的邏輯 & 數據,

讓 Component 可以必較容易進行數據間的溝通,

而不需要直接進行數據操作,

也可以將 Service 注入 Service,

也就是所謂的 injectable

Service 的注入

Service 可以通過注入方式在 Component 之間進行共享,

可以使用 Dependency Injection 來實現注入,

當一個 Component 需要使用某個 Service 的時候,

可以在該 Component 的 constructor 中聲明一個對應的參數,

當該 Component 被創建時,

就可以在 Component 中呼叫該 Service 中的物件 or 方法

import { Component } from "@angular/core";

// 這裡引用要使用的 Service
import { MyService } from "./my.service";

@Component({
  selector: "my-component",
  template: "<h1>{{data}}</h1>",
})
export class MyComponent {
  data: string;

  // 在這注入要使用的 Service
  constructor(private myService: MyService) {
    this.data = myService.getData();
  }
}

在上面的範例中,

constructor 聲明了 myService,

從而實現了對 MyService 的注入,

通過調用 myServicegetData() 取得 MyService 的值

todo: provider

整理

參考