각각
LWC에서 for:each는 템플릿 태그와 함께 사용되는 지시어입니다. 주어진 데이터에서 항목을 반환합니다. 두 개의 매개변수가 필요합니다. 우리는 for:각={데이터} 그리고 for:item='변수' 변수로 지정된 현재 항목(반복자에서)을 가져옵니다. 그만큼 for:index=”index_var” 현재 요소 인덱스를 지정하는 요소 인덱스를 저장합니다.
통사론:
LWC(HTML 구성 요소)에서 for:each 지시어를 지정하는 방법을 살펴보겠습니다. for:index는 선택사항입니다.
<템플릿:각={데이터}:항목= 'item_var' 대상:색인= '색인_위치' >
'1.0' ?>
<대상>
2. 이 가이드에서 논의할 모든 예제에서는 로직이 'js' 코드로 제공됩니다. 그런 다음 전체 'js' 코드가 포함된 스크린샷을 지정합니다.
예시 1:
“firstComponent.js” 파일에 10개의 주제를 포함하는 목록을 만들어 보겠습니다. for:each 템플릿 지시문을 사용하고 'sub' 반복자로 이 목록을 반복합니다. 단락 태그 내에서 이 반복자로 키를 지정하고 제목을 표시합니다.
firstExample.html<템플릿>
<번개 카드 제목= '주제 배열' >
<중앙>
<템플릿:각={subjects_array} 대상:항목= '보결' 대상:색인= '색인' >
{sub}
템플릿>
번개 카드>
템플릿>
firstExample.js
// 보유하는 subject_array를 생성합니다. 10 과목
과목_배열 = [ 'AWS' , '영업' , 'PHP' , '자바' , '파이썬' , 'HTML' , 'JS' , '자바' , '신탁' , '씨#' ];
전체 코드:
산출:
이 구성 요소를 개체의 '기록' 페이지에 추가합니다(계정 '기록' 페이지에 추가합니다). 10개의 요소가 모두 UI에 표시됩니다.
예 2:
이제 프로그램인 'id'라는 개체 배열을 만들고 주제와 관련된 10개의 레코드를 입력합니다. 이는 프로그램과 유형을 얻기 위해 반복됩니다. 키는 'id'이고 유형 값은 굵게 표시됩니다.
두 번째Example.html<템플릿>
<번개 카드 제목= '주제 배열' >
<중앙>
<템플릿:각={array_of_objects}:항목= 'OBJ' 대상:색인= '색인' >
{obj.program} - {obj.type}
템플릿>
번개 카드>
템플릿>
secondExample.js
// 세부사항을 담고 있는 array_of_objects를 생성합니다. 10 과목
array_of_objects = [{id: 1 ,프로그램: 'AWS' , 유형: '구름' },{ID: 2 ,프로그램: '영업' , 유형: '구름' },
{ID: 삼 ,프로그램: 'PHP' , 유형: '편물' },{ID: 4 ,프로그램: '자바' , 유형: '웹/데이터' },
{ID: 5 ,프로그램: '파이썬' , 유형: '모두' },{ID: 6 ,프로그램: 'HTML' , 유형: '편물' },
{ID: 7 ,프로그램: 'JS' , 유형: '편물' },{ID: 8 ,프로그램: '.그물' , 유형: '웹/데이터' },
{ID: 9 ,프로그램: '신탁' , 유형: '데이터' },{ID: 10 ,프로그램: '씨#' , 유형: '데이터' }];
전체 코드:
산출:
모든 프로그램이 해당 유형과 함께 UI에 표시되는 것을 볼 수 있습니다.
예시 3:
객체(id, 프로그램, 유형, 주제)의 중첩된 배열을 만듭니다. 여기서 항목은 다시 요소 목록을 보유합니다. 첫 번째 for:each 템플릿 지시문에서는 전체 중첩 배열을 반복합니다. 이 템플릿 내에서는 이전 반복자를 사용하여 주제를 다시 반복합니다. 다음으로 기본 for:each 템플릿에 프로그램, 유형, 주제를 표시합니다.
thirdComponent.html<템플릿>
<번개 카드 제목= '주제 배열' >
<중앙>
<템플릿:각={데이터}:항목= '발' 대상:색인= '색인' >
<템플릿:각={val.Topics}:항목= '발1' >
템플릿>
프로그램: {val.program} - {val.type} 주제: {val.Topics}
템플릿>
번개 카드>
템플릿>
thirdComponent.js
데이터 = [{ID: 1 ,프로그램: 'AWS' , 유형: '구름' , 주제:[ '소개' , 'AWC 필수사항' ]},
{ID: 2 ,프로그램: '영업' , 유형: '구름' , 주제:[ '관리자' , '개발' ]},
{ID: 삼 ,프로그램: 'PHP' , 유형: '편물' , 주제:[ '소개' , 'PHP-MySQL' ]}];
전체 코드:
산출:
모든 주제는 유형 및 주제와 함께 표시됩니다. 각 주제에는 두 가지 주제가 있습니다.
예시 4:
'계정' 개체에 있는 레코드를 반복해 보겠습니다. 먼저 계정 표준 개체의 계정 ID, 이름, 산업 및 등급 필드를 포함하는 레코드 목록(returnAcc() – 메서드)을 반환하는 Apex 클래스를 작성합니다. 'js' 파일에서는 linkedcallback() 내부의 Apex(import 문을 통해)에서 returnAcc() 메서드를 호출합니다. 그러면 계정이 반환됩니다. 마지막으로 이러한 계정은 for:each 템플릿 지시문에 지정되어 계정 이름과 산업을 가져옵니다.
AccountData.apxc공유 클래스 AccountData를 사용하는 공개 {
@AuraEnabled(캐시 가능=true)
공개 정적 List<계정> returnAcc(){
List
accountList 반환;
}
}
finalComponent.html
<템플릿>
<번개 카드 제목= '계정 목록 표시' >
<템플릿 if:true={계정}>
<템플릿:각={계정}:항목= 'account_rec' >
계정: {account_rec.Name} 산업: {account_rec.Industry}
템플릿>
템플릿>
번개 카드>
템플릿>
finalComponent.js
다음에서 { LightningElement,track } 가져오기 '운' ;
다음에서 returnAcc 가져오기 '@salesforce/apex/AccountData.returnAcc' ;
기본 클래스 내보내기 FinalComponent는 LightningElement를 확장합니다.
@track 계정;
@트랙 오류;
연결된콜백(){
반환Acc()
// 계정을 반환합니다.
.then(결과 => {
this.accounts = 결과;
this.error = 정의되지 않음;
})
.catch(오류 => {
this.error = 오류;
this.accounts = 정의되지 않음;
});
}
}
산출:
이름 및 업종 필드에는 10개의 계정만 표시됩니다.
결론
주어진 데이터에서 항목을 반환하는 데 사용되는 for:each 템플릿 지시문에 대해 논의했습니다. 목록, 개체 배열, 중첩 개체 및 Salesforce 개체를 포함하는 네 가지 다른 예가 제공됩니다. 데이터는 'js' 파일에서 가져와야 하며 이를 for:each 템플릿에서 사용해야 합니다. 마지막 예제 구성 요소를 배포하는 동안 Apex 클래스를 먼저 배포해야 하는지 확인하십시오.