Прежде всего, ваш метод должен возвращать курсор, поэтому вы должны удалить .fetch()
, который на самом деле пересекает курсор для возврата массива. Курсор поддерживается и поддерживается в Метеор.
Meteor.methods({
searchNearProjects: function() {
return Project.find({}, {sort: {createdAt: -1}, limit: 10});
}
});
Также в вашем шаблоне кода вы заменяете свой массив, вместо этого вы должны его заполнять. Но поскольку вы работаете с живым курсором, вам не нужен весь этот обход _.each()
. Таким образом, вы можете просто сделать:
Template.myProjectTips.helpers({
matchingProjects: function() {
Meteor.call('searchNearProjects', function(error, result) {
if (error) {
console.log(error.reason);
return;
} else {
return result;
}
});
}
});
Но для очень простого Монго запроса, как это, вы не должны использовать Meteor.method
Вместо этого вы должны публикации и подписки, как это:
сервера:
Meteor.publish ("nearProjects", function() { return Project.find ({}, {sort: {createdAt: -1}, limit: 10}); });
Клиент:
Meteor.subscribe("nearProjects");
Template.myProjectTips.helpers({
matchingProjects: function() {
return Project.find({}, {sort: {createdAt: -1}, limit: 10});
}
});
Или, если вы хотите опубликовать с некоторыми критериями найти, вы можете передать ваши аргументы ваших подписываются и опубликовывать функций.
И как выглядит ваш поискNearProjects? – Sindis