Палец вверх 1
Перевод
Перевод

Angular / HTML - будет отображаться полный JSON, но не может отображаться только один атрибут

В настоящее время я могу отобразить полный массив JSON, выполнив {{Groups | json}}.

Это будет отображаться так на моей HTML-странице:

[ { "Id": 3, **"Name": "Name I"**, "Group_Name": "Group I" } ]

Положите, если я делаю {{Groups.Name}}, я получаю следующую ошибку:

ERROR TypeError: Cannot read property 'Name' of undefined
at Object.eval [as updateRenderer]

Тем не менее, если я иду, чтобы отобразить это в списке, используя * ngFor, он работает отлично.

<select class="form-control">
<option *ngFor="let Group of Groups">{{ Groups.Name }}</option>
</select>

Есть идеи, что происходит? Этот JSON может иметь только 1 запись. Если я сделаю {{Groups [0] .Name}}, данные отобразятся, но я получу следующую ошибку.

ERROR TypeError: Cannot read property '0' of undefined
at Object.eval [as updateRenderer] (

Моя цель - просто отобразить слово «Имя I» на моей HTML-странице. «Имя I» исходит из групп массивов из значения «Имя».

Я на самом деле не хочу список, я просто использовал его в качестве примера его работы.

javascript html angular json
задан user68288 2 мая 2018 г., 18:24:54
источник

2 ответа

Палец вверх 1
Перевод
Перевод

+ Изменить

<option *ngFor="let Group of Groups">{{ Groups.Name }}</option>

в

<option *ngFor="let Group of Groups">{{ Group.Name }}</option>

поскольку Groups - это массив, вы не можете получить к нему доступ ни к какому свойству. Вот почему вы видите Cannot read property 'Name' of undefined

Более того, здесь *ngFor="let Group of Groups" вы выполняете итерацию для каждого объекта / элемента в массиве Groups . Как это работает, проще говоря, он берет элементы массива один за другим и присваивает его Group , поэтому вы должны обращаться к свойствам этого элемента. Как я уже говорил выше

 <option *ngFor="let Group of Groups">{{ Group.Name }}</option>
ответ дан George Bailey 2 мая 2018 г., 18:33:29
источник
Палец вверх 0
Перевод
Перевод

Похоже, группы представляет собой массив объектов в виде пары «ключ»: «значение».

Вы должны иметь возможность получить доступ к значению по

<span>{{ Groups[0]["Name"] }}</span>

или же

<span>{{ Groups[0].Name }}</span>
ответ дан Chop TRAN 2 мая 2018 г., 18:44:48
источник