For hver
I LWC er for:each et direktiv som brukes med malkoden. Den returnerer varene fra de gitte dataene. Det krever to parametere. Vi må spesifisere dataene i for:each={data} og for:item='variabel' tar det gjeldende elementet (fra iterator) som er spesifisert med en variabel. De for:index='index_var' lagrer elementindeksen som spesifiserer gjeldende elementindeks.
Syntaks:
La oss se hvordan du spesifiserer for:each-direktivet i LWC (HTML Component). For:indeksen er valgfri.
'1.0' ?>
2. I alle eksemplene som vi skal diskutere i denne veiledningen, vil logikk bli gitt som 'js'-koden. Etter det spesifiserer vi skjermbildet som inkluderer hele 'js'-koden.
Eksempel 1:
La oss lage en liste som inneholder 10 emner i filen 'firstComponent.js'. Bruk for:each mal-direktivet og gjenta denne listen med 'sub' iteratoren. Spesifiser nøkkelen som denne iteratoren inne i avsnittskoden og vis emnene.
firstExample.html{sub}
firstExample.js
// Lag subjects_array som holder 10 fag
subjects_array = [ 'AWS' , 'Salesforce' , 'PHP' , 'Java' , 'Python' , 'HTML' , 'JS' , 'Java' , 'Oracle' , 'C#' ];
Hele koden:
Produksjon:
Legg til denne komponenten på «Record»-siden til ethvert objekt (vi legger den til på «Record»-siden for kontoen). Alle 10 elementene vises på brukergrensesnittet.
Eksempel 2:
Nå lager vi en rekke objekter som er 'id', programmet, og skriver med 10 poster relatert til emner. Disse gjentas for å få program og type. Nøkkelen er 'id' og typeverdiene vises i fet skrift.
secondExample.html{obj.program} - {obj.type}
secondExample.js
// Lag array_of_objects som inneholder detaljer om 10 fag
array_of_objects = [{id: 1 ,program: 'AWS' , skriv: 'Sky' },{id: 2 ,program: 'Salesforce' , skriv: 'Sky' },
{id: 3 ,program: 'PHP' , skriv: 'Web' },{id: 4 ,program: 'Java' , skriv: 'Nett/data' },
{id: 5 ,program: 'Python' , skriv: 'Alle' },{id: 6 ,program: 'HTML' , skriv: 'Web' },
{id: 7 ,program: 'JS' , skriv: 'Web' },{id: 8 ,program: '.NETT' , skriv: 'Nett/data' },
{id: 9 ,program: 'Oracle' , skriv: 'Data' },{id: 10 ,program: 'C#' , skriv: 'Data' }];
Hele koden:
Produksjon:
Du kan se at alle programmene vises på brukergrensesnittet sammen med typene deres.
Eksempel 3:
Lag en nestet rekke objekter (id, program, type og emner). Her vil emnene igjen inneholde en liste over elementer. I det første for:each template-direktivet itererer vi hele den nestede matrisen. Inne i denne malen itererer vi emnene igjen ved å bruke den forrige iteratoren. Deretter viser vi programmet, typen og emnene i hovedsak for:hver mal.
thirdComponent.htmlPROGRAM: {val.program} - {val.type} EMNER: {val.Emner}
thirdComponent.js
data = [{id: 1 ,program: 'AWS' , skriv: 'Sky' , Emner:[ 'Introduksjon' , 'AWC nødvendigheter' ]},
{id: 2 ,program: 'Salesforce' , skriv: 'Sky' , Emner:[ 'Admin' , 'Utvikling' ]},
{id: 3 ,program: 'PHP' , skriv: 'Web' , Emner:[ 'Introduksjon' , 'PHP-MySQL' ]}];
Hele koden:
Produksjon:
Alle fagene vises med sin type og emner. Hvert emne har to emner.
Eksempel 4:
La oss iterere postene som er til stede i 'Konto'-objektet. Skriv først en Apex-klasse som returnerer listen over poster (returnAcc() – metode) som inkluderer konto-ID, navn, industri og vurdering-feltene fra kontostandardobjektet. I 'js'-filen påkaller vi returnAcc()-metoden fra Apex (gjennom importsetningen) inne i connectedcallback(). Dette returnerer regnskapet. Til slutt er disse kontoene spesifisert i for:each mal-direktivet for å få kontonavn og bransje.
AccountData.apxcoffentlig med deling av klassen AccountData {
@AuraEnabled(cacheable=true)
offentlig statisk liste
List
returnere kontoliste;
}
}
finalComponent.html
Konto: {account_rec.Name} Bransje: {account_rec.Industry}
finalComponent.js
importer { LightningElement,spor } fra 'flaks' ;
import returAcc fra '@salesforce/apex/AccountData.returnAcc' ;
eksport standardklasse FinalComponent utvider LightningElement {
@spor kontoer;
@track error;
kobletCallback(){
returnAcc()
// Returner regnskapet
.da(resultat => {
this.accounts = resultat;
this.error = udefinert;
})
.catch(feil => {
this.error = feil;
this.accounts = udefinert;
});
}
}
Produksjon:
Bare 10 kontoer vises med feltene Navn og Bransje.
Konklusjon
Vi diskuterte for:each mal-direktivet som brukes til å returnere varene fra de gitte dataene. Fire forskjellige eksempler er gitt som inkluderer listen, arrayen av objekter, nestede objekter og Salesforce-objekter. Dataene må komme fra 'js'-filen og bruke den i for:each-malen. Sørg for at du må distribuere Apex-klassen først mens du distribuerer de siste eksempelkomponentene.