meteor.js - 在哪里调用对集合的查找

时间:2015-02-21 10:53:17

标签: javascript meteor

所以我有两个集合,“帖子”和“位置”以及一个简单的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'以查找该位置,然后使我能够在页面的其他部分中显示该位置。我确信这很简单,但我很难连接点。

1 个答案:

答案 0 :(得分:0)

您必须制作一个发布帖子的新出版物,然后将该地点作为“依赖关系”发布。有一个包这使得这非常简单。 copleykj:simple-publish将帮助您实现这一目标。自述文件中的样本应足以让您入门。