Сервер арфы, Jade и JSON Loop, ошибка: невозможно прочитать свойство "length" из неопределенного
Это файл nav.jade
each link in data
h5.home-link: a(href="#{ url }")
Это мой файл data.json
{
"links": [
{ "url": "index.html", "pg-title": "Home" },
{ "url": "Wooden_Wall_Panelling.html", "pg-title": "Wooden Wall Panelling" },
{ "url": "Wooden_Partitioning.html", "pg-title": "Wooden Partitioning" },
{ "url": "Wardrobe_MDF_Shutters.html", "pg-title": "Wardrobe MDF Shutters" },
{ "url": "MDF_Ceiling_Patterns.html", "pg-title": "MDF Ceiling Patterns" },
{ "url": "Wooden_Grills.html", "pg-title": "Wooden Grills" }
]
}
Ошибка (пока Jade пытается скомпилировать файл):
Невозможно прочитать свойство 'длина' из неопределенного.
Ошибка указана в первой строке, т.е. каждая ссылка в данных.
Что я здесь не так делаю?
Я использую Harp Server.
1 ответ
Во-первых, убедитесь, что это _data.json
файл с подчеркиванием впереди. Тогда ваш nav.jade
файл должен выглядеть так:
each link in public._data.links
h5.home-link: a(href="#{ link.url }") #{ link["pg-title"] }
Если вы измените свой pg-title
в title
в вашем _data.json
файл, вы также можете сделать синтаксис немного чище:
each link in public._data.links
h5.home-link: a(href="#{ link.url }") #{ link.title }
Вы также можете отказаться от интерполяции строк, если хотите:
each link in public._data.links
h5.home-link: a(href=link.url)= link.title
Здесь также есть больше информации о метаданных в Арфе. Если вы отлаживаете и хотите увидеть, как все ваши метаданные доступны в Harp, вам может быть полезно временно отобразить всю общедоступную _data
объект:
pre: code= JSON.stringify(public._data, 0, 2)