Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

215
Vistas
¿Cómo pasar argumentos e inyectar servicios a la clase angular?

Una pregunta parece bastante simple, pero no trabajo con OOP en absoluto. Tengo una clase de padres. Quiero que se inyecte el servicio en el constructor y que pase todos los argumentos necesarios en la clase principal. Solo quiero tener una clase abstracta a partir de la cual pueda crear clases más complejas.

Digamos que la clase principal se ve así:

 export class FormComponent { constructor(childArgs: someType, private readonly SthService){ this.sth = childArgs.sth; // etc } }

donde childArgs son argumentos que quiero pasar al componente principal y SthService privado de solo lectura es un servicio inyectable que quiero usar en el componente

La clase infantil se ve así.

 @Component({ selector: '...', templateUrl: './....html', styleUrls: ['./....scss'] }) export class ChildComponent extends FormComponent { constructor(){ super({ firstProp: X, secondProp: Y, thirdProp: Z, }); }

¿Qué estoy haciendo mal? ¿Puedo simplemente pasar los argumentos e inyectar el servicio por completo? Porque en este momento dice que SthService no está definido.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

No está proporcionando los parámetros correctos de la clase base FormComponent en la clase derivada ChildComponent . Entonces, su constructor de ChildComponent debería verse así:

 export class ChildComponent extends FormComponent { constructor(childArgs: someType, private readonly SthService){ super(childArgs, SthService) } }

Es necesario pasar los argumentos necesarios del constructor de la clase base en la clase derivada.

Así que este es un ejemplo de código de envío de parámetros a la clase base:

 class Human { constructor( public name: string, public age: number ){} } class Employee extends Human { constructor( public name: string, public age: number, public dateHired: Date ) { super(name, age) } }
about 4 years ago · Juan Pablo Isaza Denunciar

0

use @inject('variable name') para pasar otros objetos. Supongo que el nombre de su clase de servicio es ServiceClass .

 export class FormComponent { constructor(@Inject('childArgs') childArgs: any, private readonly SthService: ServiceClass){ this.sth = childArgs.sth; // etc } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda