所以我有两个集合,“帖子”和“位置”以及一个简单的html表单,供用户将自己添加到Posts集合中。添加后,我会显示所有用户的列表,但如果他们的属性出现在Locations集合中,还希望向此列表添加一些额外的数据。
因此,作为示例,用户表单具有姓名,年龄,位置,并且位置集合具有关于他们所居住位置的信息,例如“伦敦,首都,英国”。如果来自伦敦的用户输入他们的详细信息,我想显示他们在表单上输入的详细信息以及“您居住在首都城市”,如果他们的位置功能位于地点集合中。
因此,有些代码可以从表单中插入详细信息:
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集合的订阅以及在何处调用该集合的'lookup'以查找该位置,然后使我能够在页面的其他部分中显示该位置。我确信这很简单,但我很难连接点。
答案 0 :(得分:0)
您必须制作一个发布帖子的新出版物,然后将该地点作为“依赖关系”发布。有一个包这使得这非常简单。 copleykj:simple-publish将帮助您实现这一目标。自述文件中的样本应足以让您入门。