Как получить длину массива в синтаксисе шаблона
Я пытаюсь оценить ниже в синтаксисе шаблона, который является массивом:
FAIL
{{ cols.length }}
Я получаю следующую ошибку.
platform-browser.umd.js:1900 ORIGINAL EXCEPTION: TypeError: Cannot read property 'length' of undefined
Но я повторяю так, чтобы я знал, что эта часть работает:
SUCCESS
<th *ngFor="let h of cols">
{{h}}
</th>
Ответы
Ответ 1
использование
{{ cols?.length }}
Или
<div *ngIf="cols">{{ cols.length }}</div>
Если вы хотите напечатать 0 для пустого массива, используйте
{{ cols?.length || '0' }}
Причина: cols
не инициируется, когда Angular2 загружает шаблон. И мы хотим подождать, пока он не будет готов к доступу к своим членам.
Ответ 2
Попробуйте определить переменную .ts
как список .ts
архиве .ts
cols: object[]
;
Если вы хотите вывести 0 для пустого массива, используйте тернарный оператор:
{{ cols ? cols.length : '0' }}