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

521
Visualizações
Angular 2: *ngFor en *ngFor

El siguiente escenario sería bastante fácil en javascript, pero tuve algunos problemas para que funcionara en Angular.

Tengo una matriz como:

 array a = ( "id" = 0, name = random(), column = 1, 2 or 3, blockrow= 1, 2 or 3)

Con ngFor, trato de crear ahora una cuadrícula en la que todos los elementos se separan en columnas y bloques en esta columna. Así que mi código actual (funciona pero desagradable).

 <div *ngFor="let a of a"> <template [ngIf]="a.column=='1'"> <div *ngFor="let b of a"> <template [ngIf]="b.blockrow=='1'"> Block 1 in column 1{{b.name}} </template> </div> <div *ngFor="let b of a"> <template [ngIf]="b.blockrow=='2'"> Block 2 in column 1{{b.name}} </template> </div> <div *ngFor="let b of a"> <template [ngIf]="b.blockrow=='3'"> Block 3 in column 1{{b.name}} </template> </div> </template> </div>

Algo como esto hago para cada columna. Lo que significa que recorro la misma matriz 12 veces. ¿Hay alguna forma de hacerlo más bonito?

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

0

En su componente, use JavaScript para construir una matriz de matrices con los elementos de a en las coordenadas correctas, luego use *ngFor dentro de *ngFor:

 <div *ngFor="let row of rows"> <div *ngFor="let col of row"> Block {{col.blockrow}} in column {{col.column}} {{col.name}} </div> </div>

Es posible que se necesite un tercer *ngFor si varios bloques tienen las mismas coordenadas.

over 4 years ago · Santiago Trujillo Relatório

0

Está utilizando una sintaxis incorrecta, debe ser *ngIf en lugar de [ngIf]

 <div *ngFor="let a of a"> <template *ngIf="a.column=='1'"> <div *ngFor="let b of a"> <template *ngIf="b.blockrow=='1'"> Block 1 in column 1{{b.name}} </template> </div> <div *ngFor="let b of a"> <template *ngIf="b.blockrow=='2'"> Block 2 in column 1{{b.name}} </template> </div> <div *ngFor="let b of a"> <template *ngIf="b.blockrow=='3'"> Block 3 in column 1{{b.name}} </template> </div> </template> </div>
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