Existe alguma maneira de passar dados dinâmicos para um componente no Angular?

Ravi yadav

Estou tentando passar dados que são dinâmicos para um componente filho. Mas sempre recebo os dados como indefinidos no componente filho. Abaixo está o que estou fazendo.

ParentComponent.ts

results: any[];
ngOnInit() {
this.http.get('url').subscribe(data => this.results = data);
}

ParentComponent.html

<app-childComponent [dataNeeded]=results></app-childComponent>

ChildComponent.ts

@Input('dataNeeded') dataNeeded: any[];
ngOnInit() {
 console.log(dataNeeded); //Always undefiend
}

Então, como esperado, ele não espera pela chamada assíncrona e me retorna indefinido. Como faço para passar os dados dinâmicos para o componente?

Samy Sammour

O problema é que o thread de interface do usuário renderizará o componente filho antes que a assinatura do observável termine.

você precisa fazer assim:

import { ChangeDetectorRef } from '@angular/core';

constructor(private ref: ChangeDetectorRef) {}
ngOnInit() {
   this.http.get('url').subscribe(data => { 
     this.results = data;
     this.ref.markForCheck();
   });
}

e no HTML você deve testar o valor primeiro.

<ng-container *ngIf="results != null">
    <app-childComponent [dataNeeded]=results></app-childComponent>
</ng-container>

Uma pequena descrição, o .markForCheck()irá atualizar o resultado após a assinatura e irá informar todos os componentes que estão usando este "valor" para atualizar seu valor, incluindo o ng-container. O contêiner permitiria renderizar o componente filho agora, o que garantirá que os resultados não sejam nulos quando o filho estiver passando por seu ciclo de vida.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como passar dados dinâmicos de um arquivo blade como um suporte para um componente vue?

Existe alguma maneira de passar um argumento para addEventListener?

Existe uma maneira correta de passar dados para um componente React a partir da página HTML?

No Angular 8, como passar dados dinâmicos de um observável para um diálogo modal?

No Angular 8, como passar dados dinâmicos de um observável para um diálogo modal?

Existe alguma maneira de carregar dados dinâmicos de forma dinâmica usando SQL PHP JS?

No NestJS existe alguma maneira de passar dados dos guardas para o controlador?

Existe alguma maneira de passar um parâmetro para um roteador em express nodejs?

Existe uma maneira melhor de passar dados de um componente filho para uma função em um componente pai sem usar bind ()?

Existe alguma maneira de passar o conteúdo LinkButton de um para outro durante o redirecionamento?

Existe alguma maneira de passar o índice para um formulário parcial aninhado no ActiveAdmin?

Existe uma maneira de passar um estado para um componente que foi passado como um suporte?

Angular: como passar dados de um componente para outro componente sem passar por HTML?

Angular: como passar dados de um componente para outro componente sem passar por HTML?

Existe uma maneira simples de passar dados dos filhos para o componente pai?

existe alguma maneira de usar letras minúsculas para um componente no ReactJS?

Existe alguma maneira de passar a variável @Autowired para alguma outra classe em um aplicativo Spring Boot?

Em JavaScript, existe alguma maneira de passar elementos de um array para uma função sem passar o array inteiro?

Vue + Nuxt: problema de passar (vincular) dados dinâmicos do componente pai para filho

Existe alguma maneira de traduzir SQL de um banco de dados para outro?

qual é a maneira eficiente de passar dados de um componente para vários componentes?

Existe uma maneira de passar adereços para um componente contido na reação?

Existe uma maneira de passar os adereços para um componente implicitamente?

Existe uma maneira de passar o parâmetro para um componente substituível / redeclarado?

Existe alguma maneira de executar um procedimento armazenado para todas as linhas de dados selecionadas?

Existe alguma maneira de executar um procedimento armazenado para todas as linhas de dados selecionadas?

Existe alguma maneira de enviar dados de um chaincode para outro chaincode no hyperledger fabric 2.0?

Existe alguma maneira de filtrar dados de um documento html?

Existe alguma maneira de anexar dados a um arquivo .xml no Unix?

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    UITextView não está exibindo texto longo

  3. 3

    Dependência circular de diálogo personalizado

  4. 4

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  5. 5

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  6. 6

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  7. 7

    Setas rotuladas horizontais apontando para uma linha vertical

  8. 8

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  9. 9

    Definir um clipe em uma trama nascida no mar

  10. 10

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  11. 11

    Como dinamizar um Dataframe do pandas em Python?

  12. 12

    regex para destacar novos caracteres de linha no início e no fim

  13. 13

    Why isn't my C# .Net Core Rest API route finding my method?

  14. 14

    Como obter a entrada de trás de diálogo em treeview pyqt5 python 3

  15. 15

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  16. 16

    How to create dynamic navigation menu select from database using Codeigniter?

  17. 17

    Como recuperar parâmetros de entrada usando C #?

  18. 18

    Changing long, lat values of Polygon coordinates in python

  19. 19

    Livros sobre criptografia do muito básico ao muito avançado

  20. 20

    Método \ "POST \" não permitido no framework Django rest com ações extras & ModelViewset

  21. 21

    Pesquisa classificada, conte números abaixo do valor desejado

quentelabel

Arquivo