source

{{object} 여부를 확인하지 않으면 오류가 발생합니다.필드}이(가) 존재합니다.

bestscript 2023. 8. 28. 21:48

{{object} 여부를 확인하지 않으면 오류가 발생합니다.필드}이(가) 존재합니다.

개체에 필드가 있는지 확인하는 것에 대해 질문이 있습니다.

사용자가 가지고 있는 모든 범주를 인쇄하여 다음과 같은 작업을 수행합니다.

  <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"

참고 항목각 2의 템플릿에 데이터가 추가되지 않음

*ngIf

다른 방법은 항상 뷰의 부분을 다음과 같이 닫는 것입니다.*ngIf="data"부품이 이전에 렌더링되는 것을 방지합니다.data참조 취소 오류를 방지하기 위해 사용할 수 있습니다.

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