Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

405
Views
ngOnInit no se llama cuando se instancia la clase inyectable

¿Por qué no se llama a ngOnInit() cuando se resuelve una clase Injectable ?

Código

 import {Injectable, OnInit} from 'angular2/core'; import { RestApiService, RestRequest } from './rest-api.service'; @Injectable() export class MovieDbService implements OnInit { constructor(private _movieDbRest: RestApiService){ window.console.log('FROM constructor()'); } ngOnInit() { window.console.log('FROM ngOnInit()'); } }

Salida de consola

 FROM constructor()
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Los ganchos del ciclo de vida, como OnInit() , funcionan con directivas y componentes. No funcionan con otros tipos, como un servicio en su caso. De documentos:

Un Componente tiene un ciclo de vida administrado por Angular mismo. Angular lo crea, lo representa, crea y representa a sus elementos secundarios, lo comprueba cuando cambian sus propiedades enlazadas a datos y lo destruye antes de eliminarlo del DOM.

Las instancias de directivas y componentes tienen un ciclo de vida ya que Angular las crea, actualiza y destruye.

over 4 years ago · Santiago Trujillo Report

0

No conozco todos los ganchos del ciclo de vida, pero en cuanto a la destrucción, ngOnDestroy en realidad recibe una llamada en Injectable cuando se destruye su proveedor (por ejemplo, un Injectable suministrado por un componente).

De los docs :

Gancho de ciclo de vida que se llama cuando se destruye una directiva, tubería o servicio .

En caso de que alguien esté interesado en la destrucción , consulteesta pregunta:

over 4 years ago · Santiago Trujillo Report

0

Agregando a la respuesta de @Sasxa ,

En Injectables , puede usar class normalmente que está poniendo el código inicial en el constructor en lugar de usar ngOnInit() , funciona bien.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!