[[oktatas:web:angular|< Angular]] ====== Angular szolgáltatások ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2021, 2022, 2023 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== Szolgáltatás ===== Szolgáltatás generálása: ng generate service valami Rövden: ng g s valami A szolgáltatásokat egy **shared** nevű könyvtárba szokás tenni: ng g service shared/valami ===== Ami létrejött ===== Az ''ng g service shared/valami'' utasítás hatására létrejön a következő: * src/app/shared/valami.service.ts * src/app/shared/valami.service.spec.ts import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class ValamiService { constructor() { } } Létrejött tesztfájl: import { TestBed } from '@angular/core/testing'; import { ValamiService } from './valami.service'; describe('ValamiService', () => { let service: ValamiService; beforeEach(() => { TestBed.configureTestingModule({}); service = TestBed.inject(ValamiService); }); it('should be created', () => { expect(service).toBeTruthy(); }); }); ===== Felhasználás komponensben ===== Szolgáltatás: import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class ValamiService { fruits = [ 'alma', 'körte', 'barack', 'szilva' ]; constructor() { } getFruits() { return this.fruits; } } import { Component, OnInit } from '@angular/core'; import { FruitService } from '../shared/fruit.service'; @Component({ selector: 'app-teker', templateUrl: './teker.component.html', styleUrls: ['./teker.component.scss'] }) export class TekerComponent implements OnInit { fruits !: string[]; constructor(private fruit: FruitService) { } ngOnInit(): void { this.fruits = this.fruit.getFruits(); } }