创建反应式阵列会话存储

时间:2015-12-23 22:46:38

标签: javascript arrays mongodb meteor

我正在尝试根据用户事件排除要在client上显示的文档。

这是我失败的尝试:

Template.documents.events({
  'click #dontShowThisDocument': function () {
    Session.set('excludedDocument', this._id);
  }
});

Template.documents.helpers({
  lists: function () {
    var excludedDocuments = [];
    excludedDocuments.push(Session.get('excludedDocument'));
    return Coll.find({_id:{$nin:excludedDocuments});
  }
});

如何使用array创建meteor会话存储,以便用户能够排除列表reactively上的某些文档?

非常感谢你。

1 个答案:

答案 0 :(得分:0)

Session变量可以包含数组(或任何对象),这意味着您可以执行此操作:

Template.documents.events({
  'click #dontShowThisDocument': function () {
    var excluded = Session.get('excludedDocument');
    if ( excluded ) excluded.push(this._id);
    else excluded = [ this.id ];
    Session.set('excludedDocument',excluded);
  }
});

Template.documents.helpers({
  lists: function () {
    return Coll.find({ _id: { $nin: Session.get('excludedDocument') });
  }
});