所以我有两个集合,“Posts”和“Locations”,以及一个简单的 html 表单,供用户将自己添加到 Posts 集合中。添加后,我会显示所有用户的列表,但如果他们具有位置集合中显示的属性,我还想向此列表添加一些额外的数据。
举个例子,用户表单包含姓名、年龄、位置,位置集合包含有关他们居住位置的信息,例如“英国首都伦敦”。如果来自伦敦的用户输入他们的详细信息,我希望显示他们在表单中输入的详细信息以及“您住在首都”(如果他们的位置位于“位置”集合中)。
因此,需要一些代码来插入表单中的详细信息:
post_submit.js:
Template.postSubmit.events({
'submit form': function(e) {
e.preventDefault();
var post = {
name: $(e.target).find('[id=usersName]').val().toUpperCase();,
age: $(e.target).find('[id=age]').val(),
location: $(e.target).find('[id=location]').val().toUpperCase(),
};
Meteor.call('postInsert', post, function(error, result) {
// display the error to the user and abort
if (error)
return throwError(error.reason);
Router.go('postPage', {_id: result._id});
});
}
});
以及 posts.js
Meteor.methods({
postInsert: function(postAttributes) {
var post = _.extend(postAttributes, {
submitted: new Date(),
});
var postId = Posts.insert(post);
return {
_id: postId
};
}
});
但是,如何定义对 Locations 集合的订阅,以及在哪里调用该集合的“查找”以查找位置,然后使我能够在页面的其他部分中显示该位置。我确信这很简单,但我正在努力将这些点联系起来。
最佳答案
您必须创建一个新的发布来发布帖子,然后将位置发布为“依赖项”。有一个包可以让这一切变得非常简单。 copleykj:simple-publish将帮助您实现这一目标。自述文件中的示例应该足以帮助您入门。
关于javascript - meteor.js - 在哪里调用集合查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28644900/