Programing

{{object.field}} 존재 여부를 확인하지 않으면 오류

lottogame 2020. 11. 13. 07:41
반응형

{{object.field}} 존재 여부를 확인하지 않으면 오류


개체의 일부 필드가 있는지 확인하는 방법에 대한 질문이 있습니다.

사용자가 가지고있는 모든 카테고리를 인쇄하고 싶으므로 다음과 같이합니다.

  <ul *ngIf="user.categories.length >  0" *ngFor="#category of user.categories">
    <li>
      {{category.name}}
    </li>
  </ul>

이유? 모든 데이터가된다 올바르게 인쇄하지만이 같은 웹 콘솔에서 오류를 받고 있어요 :

Cannot read property 'name' of null

하지만 다음과 같이 할 때 :

  <ul *ngIf="user.categories.length >  0" *ngFor="#category of user.categories">
    <li *ngIf="category">
      {{category.name}}
    </li>
  </ul>

그럼 모두 괜찮습니다.

내가 뭔가 잘못하고 있거나 매번 이것을 확인해야 할 수도 있습니까? 이와 같은 문제가 있었습니까?


기본 사용법

안전 탐색 연산자 사용

{{category?.name}}

다음 name경우 읽기 전용 category되지 않습니다 null.

정렬

이것은 .(역 참조) 연산자에 대해서만 작동합니다 . 배열의 경우 다음을 사용할 수 있습니다.

{{records && records[0]}}

Angular 2-ERROR CONTEXT : [object Object] 컨텍스트와 함께 정의되지 않은 오류의 속성 '0'을 읽을 수 없음 도 참조하십시오 .

비동기 파이프

함께 async파이프는처럼 사용할 수

{{(chapters | async)?.length

ngModel

ngModel현재는로 분할 될 필요가

[ngModel]="details?.firstname" (ngModelChange)="details.firstname = $event"

angular2의 템플릿에 데이터가 추가되지 않음을 참조하십시오.

*ngIf

대안은 역 참조 오류를 방지 *ngIf="data"하기 위해 data를 사용할 수 있기 전에 부품이 전혀 렌더링되지 않도록 항상 뷰의 일부를 래핑하는 것 입니다.

참고 URL : https://stackoverflow.com/questions/34910928/error-if-dont-check-if-object-field-exists

반응형