我想根据不同的路线发布和订阅同一集合的子集。这是我所拥有的
在 /server/publish.js
Meteor.publish("questions", function() {
return Questions.find({});
});
Meteor.publish("questionSummaryByUser", function(userId) {
var q = Questions.find({userId : userId});
return q;
});
在 /client/main.js
Deps.autorun(function() {
Meteor.subscribe("questions");
});
Deps.autorun(function () {
Meteor.subscribe("questionSummaryByUser", Session.get("selectedUserId"));
});
我正在使用路由器包(https://github.com/tmeasday/meteor-router)。他们希望应用程序工作的方式是,当我转到“/questions”时,我想列出所有用户的所有问题,而当我访问“/users/:user_id/questions”时,我只想按特定列出问题用户。为此,我设置了“/users/:user_id/questions”路由以在“selectedUserId”会话中设置用户ID(我也在“questionSummaryByUser”发布方法中使用它。
但是,当我在“/users/:user_id/questions”中看到问题列表时,我会得到所有问题,而与 user_id 无关。
我在这里读到集合在客户端合并,但仍然无法为上述场景找到解决方案。
请注意,我刚开始使用 Meteor,所以不知道它的进出。
提前致谢。