Доступ к вложенным объектам JSON в Backbone
У меня есть простой сценарий, где я возвращаю JSON с вложенными объектами с бэкэндом Rails. У меня проблемы с доступом к атрибутам вложенного объекта.
Пример JSON:
[{
category_id: 2,
id: 34,
name: "red",
category: {
name: "color"
}
},
{
category_id: 2,
id: 35,
name: "blue",
category: {
name: "color"
}
}]
Скажем, я хочу получить доступ к цвету категории для элемента с идентификатором 35, это прекрасно работает в консоли:
collection = new App.Collections.Colors()
collection.fetch()
model = collection.get(35)
model.get('category').name
В моих шаблонах эко я получаю сообщение об ошибке "Не удается прочитать свойство" имя "из неопределенного". Тем не менее, мой шаблон все еще показывает, что я могу получить доступ к объекту с помощью [объекта объекта], если я только укажу
<%= model.get('category') %>
Есть идеи? Я уверен, что я не понимаю что-то фундаментальное.
ОБНОВЛЕНО
Я понял, что некоторые имена категорий были нулевыми, что вызывало ошибку. Код выше должен быть в порядке.
1 ответ
Кажется, что ваш JSON искажен.
Согласно спецификации JSON, вам нужно заключить ключи в кавычки.
Вместо этого попробуйте следующее:
[{
"category_id": 2,
"id": 34,
"name": "red",
"category": {
"name": "color"
}
},
{
"category_id": 2,
"id": 35,
"name": "blue",
"category": {
"name": "color"
}
}]
Кроме того, не могли бы вы поделиться тем, что код до <% = model.get ('category')%>?