Почему шаблон пробелов не отображается полностью?
У меня странная ситуация, когда мой шаблон не отображает все поля
- В этом шаблоне все в #each отображается правильно.
- Однако первый {{фотограф}} в h2 пуст. Тот же шаблон. Есть идеи?
- То же самое происходит и с другим шаблоном.
- это можно увидеть на http://photo-story.meteor.com/photog/Dean полный код на https://github.com/deanwenick/cf07-stories
большое спасибо
'<template name="photog">
<h2>These are {{photographer}}'s stories</h2>
{{#each photog}}
<img src="{{photos.[0]}}" alt="great image from a story">
<div class="caption">
<h3>{{storyName}}</h3>
<p>Photographer: {{photographer}}</p>
<p>Editor: <a href="/editor/{{editor}}">{{editor}}</a></p>
</div>
{{/each}}
</template>'
2 ответа
Имя фотографа не доступно за пределами {{#each}}
раздел шаблона, потому что данные, возвращаемые из вашего photog
В запросе маршрута отсутствует поле фотографа верхнего уровня:
{
"photographer" : "Dean",
"editor" : "Dean",
"votes" : 0,
"photos" : [
"/pics/wenick_20131110_171.jpg",
"/pics/wenick_20131110_182.jpg"
],
"storyName" : "D2BS West 2013",
"_id" : "GCYR9MnYrrvxRSBQB"
}
{
"photographer" : "Dean",
"editor" : "Dean",
"votes" : 1,
"photos" : [
"/pics/wenick_20130409_149.jpg",
"/pics/wenick_20130409_158.jpg"
],
"storyName" : "Bill's Party",
"_id" : "tCrFAm7X6vFSbiadC"
}
Вы можете добавить еще одно возвращаемое значение данных в photog
маршрут (в client/helpers/router.js
) так это выглядит так:
return {
photog: Stories.find( {photographer: this.params.photographer} ),
photographer: this.params.photographer
};
... а затем убедитесь, что строка, ссылающаяся на имя фотографа (в client/views/stories/photog.html
) это:
<h2>These are {{photographer}}'s stories</h2>
Весь шаблон вызывается для объекта, который не показан. Позволяет всем называть этот объект верхом. Я предполагаю, что это выглядит так:
{
"photog": [
{
"photographer": "name",
"editor": "name",
"photos": []
},
{
"photographer": "name2",
"editor": "name2",
"photos": []
}
]
}
{{#Each}} проходит через вызываемый массив photog. Внутри каждой области видимости переменной изменяется, так что вы можете получить прямой доступ к {{фотограф}}.
Но за пределами каждого из них {{фотограф}} должен ссылаться на шаблон? Это не знает. Одним из решений было бы жестко связать это с помощником шаблона. Добавьте что-то вроде этого в свой JavaScript:
Template.photog.photographer = function()
{
return "the name";
}