पाठ 12 / 30

सर्विस बनाना

साझा लॉजिक और स्थिति को कंपोनेंट से बाहर निकालें।

@Injectable

सर्विस एक सादी क्लास है जिसे @Injectable से चिह्नित किया जाता है, जिसमें ऐसा लॉजिक या स्थिति होती है जो हर कंपोनेंट में दोहराई नहीं जानी चाहिए।

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

@Injectable({ providedIn: 'root' })
export class CartService {
  private items: string[] = [];

  add(item: string) {
    this.items.push(item);
  }

  getItems() {
    return this.items;
  }
}

providedIn: 'root'

providedIn: 'root' सर्विस को पूरे ऐप में एक ही सिंगलटन इंस्टेंस के रूप में रजिस्टर करता है — जहाँ भी इसे इंजेक्ट किया जाए, वही इंस्टेंस साझा होता है।