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

504
Visualizações
El método que usa datos recuperados de un observable en su propio componente devuelve undefined cuando se usa como Input()

Creé una plantilla example.component.html que recibe un método como variable para su acción de clic:

 <div> <button (click)="method()">click here</button> </div>

en el archivo example.component.ts , el método proviene de una entrada (), por lo que puedo usar esta plantilla en múltiples situaciones:

 @Component({ selector: 'example', templateUrl: './example.component.html', }) export class ExampleComponent implements OnInit { @Input() method; constructor() {} ngOnInit(): void {} }

Aquí es donde se complica. En el componente principal, el método que se activará al hacer clic utiliza una variable que proviene de un observable:

parent-example.component.html

 <example [method]="onClick"></example>

parent-example.component.ts

 @Component({ selector: 'parent-example', templateUrl: './parent-example.component.html', }) export class ParentExampleComponent implements OnInit { @Input() method; business; constructor(businessEntityService: BusinessEntityService) { businessEntityService.entities$.subscribe( data => (this.business = data), ); } onClick() { console.log(this.business); } ngOnInit(): void {} }

Aunque el componente principal está suscribiendo a businessEntityService observable y he comprobado que tiene datos, cuando hago clic en el botón, la consola registra undefined .

Entiendo que esto probablemente tenga que ver con el alcance y la pila está buscando this.business en el componente de niños, sin embargo, me encantaría saber si hay alguna forma de llamar a un método que use una variable de una suscripción de su propio componente como Entrada ( ).

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El this contexto se está perdiendo (creo). Puede suceder al pasar métodos de clase como parámetros

Reemplace el método ParentExampleComponent#onClick con:

 onClick = () => { console.log(this.business); }

Nota: detrás de escena, Typescript ahora tratará onClick como una propiedad de clase y moverá ese código al constructor. El uso de una función de flecha bloquea el contexto this de esa función

over 4 years ago · Santiago Trujillo 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