В моем веб-приложении некоторые «новости и события-записи» имеют обложки, некоторые - нет (изображения хранятся в CollectionFS). Вот пример с изображением (ключ coverImageId):Meteor: Шаблон всегда возвращает true
JSON:
{
"_id" : "gDPwfDJFxh3y7NBBK",
"title" : "EGOS 2015 reminder: Open Organizations for an Open Society?",
"description" : "\n\t\t \t\t\n\t\t \t\tOpen Organizations for an Open Society? Practicing Openness in Innovation, Strategy and Beyond; Convenors: Leonhard Dobusch, Freie Universität Berlin, Georg von Krogh, ETH Zurich, Switzerland, Richard Whittington, Oxford University, Link to website: : http://bit.ly/EGOS15Open\n\t\t \t\n\t\t \t",
"type" : "news",
"createdAt" : ISODate("2016-02-28T20:30:09.316Z"),
"coverImageId" : "teEfXMANGbSn4vWkD"
}
Шаблон:
<div class="row text-left">
{{#each newsEventsData}}
<div class="col-sm-4">
<div class="caption">
{{#if imageExists}}
<h4>TRUE {{title}}<img alt="news thumbnail" class="news-thumbnail" src="{{ coverImage.url }}" /></h4>
{{else}}
<h4>FALSE {{title}}</h4>
{{/if}}
<p class="text-muted">{{{description}}} <a href="{{pathFor route = 'newsAndEventsPage'}}" class="textlink">read more </a></p>
</div>
</div>
{{/each}}
</div> <!-- ROW -->
Если есть изображение, изображение показано на рисунке. Итак, это работает. Тем не менее, часть else
никогда не отображается. Я предполагаю, что мой помощник возвращает true, потому что этого достаточно, если один документ содержит coverImageId
.
Helper:
Template.allNewsEvents.helpers({
newsEventsData: function() {
if(Session.equals("newsEventsSeeMore","no")) {
return NewsEvents.find({type: { $in: Session.get('newsEventsViewMain')}}, {sort: {createdAt: -1}, limit: 3});
}
else {
return NewsEvents.find({type: { $in: Session.get('newsEventsViewMain')}}, {sort: {createdAt: -1}});
}
},
imageExists: function() {
return NewsEvents.find({_id:this._id},{coverImageId: { $exists: true } });
}
});
Любая помощь очень ценна.
еще возвращает истину в '' 'else'''part :( –
Так что я думаю, что вы хотите, чтобы вернуться ложным, если NewsEvent не имеет coverImageId я непонимание вопроса в. сначала нужно попробовать отредактированный код –
Может быть, '!! (event && event.coverImageId)'. –