Angular 2 - injeção de dependência
A injeção de dependência é a capacidade de adicionar a funcionalidade de componentes em tempo de execução. Vamos dar uma olhada em um exemplo e nas etapas usadas para implementar a injeção de dependência.
Step 1- Crie uma classe separada que tenha o decorador injetável. O decorador injetável permite que a funcionalidade dessa classe seja injetada e usada em qualquer módulo Angular JS.
@Injectable()
export class classname {
}
Step 2 - Em seguida, no módulo appComponent ou no módulo em que deseja usar o serviço, é necessário defini-lo como um provedor no decorador @Component.
@Component ({
providers : [classname]
})
Vejamos um exemplo de como fazer isso.
Step 1 - Crie um ts arquivo para o serviço chamado app.service.ts.
Step 2 - Coloque o seguinte código no arquivo criado acima.
import {
Injectable
} from '@angular/core';
@Injectable()
export class appService {
getApp(): string {
return "Hello world";
}
}
Os seguintes pontos precisam ser observados sobre o programa acima.
O decorador injetável é importado do módulo angular / núcleo.
Estamos criando uma classe chamada appService que é decorada com o decorador Injectable.
Estamos criando uma função simples chamada getApp que retorna uma string simples chamada “Hello world”.
Step 3 - No arquivo app.component.ts coloque o seguinte código.
import {
Component
} from '@angular/core';
import {
appService
} from './app.service';
@Component({
selector: 'my-app',
template: '<div>{{value}}</div>',
providers: [appService]
})
export class AppComponent {
value: string = "";
constructor(private _appService: appService) { }
ngOnInit(): void {
this.value = this._appService.getApp();
}
}
Os seguintes pontos precisam ser observados sobre o programa acima.
Primeiro, estamos importando nosso módulo appService no módulo appComponent.
Então, estamos cadastrando o serviço como provedor neste módulo.
No construtor, definimos uma variável chamada _appService do tipo appService para que possa ser chamada em qualquer lugar no módulo appComponent.
Por exemplo, no lifecyclehook ngOnInit, chamamos a função getApp do serviço e atribuímos a saída à propriedade value da classe AppComponent.
Salve todas as alterações de código e atualize o navegador, você obterá a seguinte saída.