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

90
Visualizações
retraso antes de la plantilla de enlace angular

esto es una especie de relación con ExpressionChangedAfterItHasBeenCheckedError nuevamente.

en mi situación, tengo un parámetro 'datos' que recupero de la llamada ajax. estos datos se utilizan para crear un niño a través de la directiva @input. Deseo que el enlace solo ocurra cuando se definen los datos. pero no tengo idea de cómo hacer eso con angular

 export class UserComponent{ data: any constructor( private userService: UserService){ this.userService.getUser() .subscribe(result => { this.data = result; } } ); }

porque la forma en que funciona, angular mostrará un ExpressionChangedAfterItHasBeenCheckedError, que entiendo por qué, pero cómo pedirle a angular que espere a que se realice la devolución de llamada y que los datos sean != de indefinidos antes de comenzar a vincular y esas cosas, el objetivo es tener algunos child inicializado con el valor real proveniente de la base de datos.

Si debo esperar al final del ciclo antes de vincular datos "reales", está bien, pero cómo hacerlo sin tener este error (¡y por favor sin usar setTimeout ya que parece un montón de basura!).

Gracias

 <!--the template if it matter --><somechildtag [data]="data" ></somechildtag>
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Cargue su componente con ng-container .

Por ejemplo:

 <div *ngIf="data?.length > 0"> <ng-container *ngComponentOutlet="myChildComponent; ngModuleFactory: childComponentsModule;"></ng-container> </div>

Por lo tanto, representará a su hijo solo si su objeto data está poblado .

En su componente:

 private childComponentsModule: NgModuleFactory<any>; constructor(private compiler: Compiler){ this.childComponentsModule = compiler.compileModuleSync(ChildComponentsModule); }

Puede ver un ejemplo más detallado de cómo cargar dinámicamente un componente aquí:

Angular2: use Pipe para renderizar plantillas dinámicamente

Documentación de angular:

https://angular.io/docs/ts/latest/api/common/index/NgComponentOutlet-directive.html

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