Доступ к вложенным объектам 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')%>?

Другие вопросы по тегам