Проблема в том, что вы используете в своем шаблоне свойства, которые могут еще не существовать. Объясняя свои ошибки:
<p> Display the Issuer Name here: {{ issuerGroups.Issuer_Name }} </p>
Это невозможно, поскольку до тех пор, пока данные не загрузятся, переменная issuerGroups
не будет инициализирована ни для какого значения объекта, и вы, очевидно, не сможете прочитать свойства undefined
. После загрузки данных не произойдет сбой, но он также ничего не отобразит, потому что для issuerGroups
задан тип массива, у которого нет поля Issuer_Name
.
<p> Display the Issuer Name here: {{ issuerGroup.Issuer_Name }} </p>
Это всегда будет неудачей, потому что в вашем компоненте вообще не определено поле issuerGroup
.
<p> Display the Issuer Name here: {{ issuerGroups[0].Issuer_Name }} </p>
Это происходит сбой до загрузки данных, так как массив не инициализирован, и даже если вы инициализировали его с помощью []
, в нем не будет элементов, поэтому вы не можете прочитать запись с индексом 0, пока там не будет элемента. .
Вместо этого вы должны сделать следующее:
<p> Display the Issuer Name here: {{ getIssuerName() }} </p>
И добавление метода в контроллер:
getIssuerName() {
if (this.issuerGroups && this.issuerGroups.length > 0) {
return this.issuerGroups.Issuer_Name[0];
} else {
return "";
}
}
(конечно, вы можете выполнить встроенную проверку в своем HTML-файле, как предлагали другие, метод предназначен только для удобства чтения кода)
TL; DR:
Не обращаться к членам объектов, загруженных асинхронно, когда они еще не загружены.