Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

217
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda