⊗jsagPmSvITS 77 of 97 menu

Injeção de um Serviço em Outro no Angular

Para trabalhar em um projeto, podemos precisar injetar um serviço em outro para estender sua funcionalidade. Vamos criar mais um serviço que irá exibir mensagens no console ao adicionar novos dados.

Primeiro, na pasta test/src/app, crie o arquivo log.service.ts. Exporte a classe LogService, na qual escreveremos a função write para exibir uma mensagem no console:

import { Injectable } from '@angular/core'; @Injectable() export class LogService { write(message: string) { console.log(message); } }

Em seguida, vamos para o nosso serviço DataService e importamos, injetamos e usamos o nosso novo serviço:

import { Injectable } from '@angular/core'; import { LogService } from './log.service'; // importamos @Injectable() export class DataService { private data: string[] = ['a', 'b', 'c']; constructor(private logService: LogService) { // injetamos } getData(): string[] { this.logService.write('dados recebidos'); // usamos return this.data; } addData(name: string){ this.data.push(name); this.logService.write('novo elemento adicionado'); // usamos } }

Isso, no entanto, não é suficiente. Também é necessário registrar o novo serviço na classe do componente, mesmo que não seja usado diretamente lá:

import { Component } from '@angular/core'; import {DataService} from './data.service'; import {LogService} from './log.service'; // importamos @Component({ ........ providers: [DataService, LogService] // adicionamos })
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar