Как получить длину массива в синтаксисе шаблона

Я пытаюсь оценить ниже в синтаксисе шаблона, который является массивом:

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' }}