첫 번째, 마지막, 인덱스 루프의 각도 2ng


94

이 예제에서 첫 번째 항목을 기본값으로 설정하려고합니다. plunkr

다음 오류가 발생합니다.

    Unhandled Promise rejection: Template parse errors:
    TypeError: Cannot read property 'toUpperCase' of undefined ("dButtonToggleGroup">
    <md-button-toggle [ERROR ->]*ngFor="let indicador of indicadores; #first = first" value="indicador.id" [checked]="first">"): ng:///AppModule/HomeComponent.html@35:78
    Parser Error: Unexpected token #, expected identifier, keyword, or string at column 31 in [let indicador of indicadores; #first = first] in ng:///AppModule/HomeComponent.html@35:78 ("<md-button-toggle *ngFor="let indicador of indicadores; #first = first" value="indicador.id" [ERROR ->][checked]="first">
    <span>{{ indicado"): ng:///AppModule/HomeComponent.html@35:153

뭐가 잘못 되었 니??

답변:


187

plunkr를 확인하십시오 .

변수에 바인딩 할 때는 대괄호를 사용해야합니다. 또한 템플릿 내에서 변수를 선언하는 것이 아니라 HTML의 요소에 대한 참조를 얻고 싶을 때 해시 태그를 사용합니다.

<md-button-toggle *ngFor="let indicador of indicadores; let first = first;" [value]="indicador.id" [checked]="first"> 
...

편집 : Christopher Moore 덕분에 : Angular는 다음과 같은 지역 변수를 제공합니다.

  • index
  • first
  • last
  • even
  • odd

감사합니다! 그게 나에게 많은 도움이되었지만 검색을 통해 다음과 같은 몇 가지 예를 찾았 기 때문에 첫 번째를 사용하려고했습니다. blog.angular-university.io/angular-2-ngfor (목록의 첫 번째 요소와 마지막 요소 식별)
PriNcee

그래. 그렇게 할 수도 있습니다. 대신에 let i = index, 단지로 변경 let first = first;및 변경 [체크] 대신 단지 "나는 == 0"의 "첫 번째"확인 바인딩.
Steveadoo

좋은! 지금 작동합니다! 하지만 왜 내가 체크 된 속성을 괄호로 묶어야하는지 전혀 이해할 수 없습니다
PriNcee

29
@Steveadoo의 ngFor각도 노출하는 다음의 로컬 변수 index, first, last, evenodd. 향후 사용자를 위해이 점을 명확히하기 위해 답변을 업데이트 할 수 있습니까?
크리스토퍼 무어

2
대신 다음과 let first = first같이 작성할 수 있습니다 first as isFirst(isFirst는 맞춤 변수 임). angular.io/api/common/NgForOf#local-variables
jurl

58

Angular 6에서 수행하는 방법은 다음과 같습니다.

<li *ngFor="let user of userObservable ; first as isFirst">
   <span *ngIf="isFirst">default</span>
</li>

에서 let first = first로의 변경 사항에 유의하십시오.first as isFirst


당신은 파이프를 교체 할 필요가 |로를 ;작업에 대한.
Florian Moser

let first = first그리고 first as isFirst두 선언 모두 사용하기에 정확합니다. 두 번째 별칭은 거의 읽기
Mohan Ram

4

이것 *ngFor으로 ANGULAR의 루프에서 모든 인덱스를 얻을 수 있습니다 ...

<ul>
  <li *ngFor="let object of myArray; let i = index; let first = first ;let last = last;">
    <div *ngIf="first">
       // write your code...
    </div>

    <div *ngIf="last">
       // write your code...
    </div>
  </li>
</ul>

이 별칭을 다음에서 사용할 수 있습니다. *ngFor

  • index: number: let i = index객체의 모든 인덱스를 가져옵니다.
  • first: boolean: let first = first객체의 첫 번째 인덱스를 가져옵니다.
  • last: boolean: let last = last객체의 마지막 색인을 가져옵니다.
  • odd: boolean: let odd = odd개체의 홀수 인덱스를 가져옵니다.
  • even: boolean: let even = even객체의 인덱스를 가져옵니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.