我正在使用流星,我对发布/订阅文档和使用车把#each items
助手查询/返回集合之间的关系有点困惑。
我知道通过发布和订阅某些文档,当事情发生变化时,我可以在客户端浏览器上进行响应式更新。
我发现我自己编写了非常复杂的(面向角色的)发布函数,并编写了等效的函数以将项目返回给客户端。例如,
Meteor.publish("directory", function () {
var user = Meteor.users.findOne({_id:this.userId});
//role and logic left out on purpose
return Meteor.users.find({}, {fields:{emails:1, profile:1}});
});
和订阅
if (Meteor.userId() != null) {
Meteor.subscribe("directory");
}
模板称为 show people 和 helper 'users'
Template.show_people.users = function () {
users = Meteor.users.find({}).fetch();
return users;
};
我的问题是,事情应该这样做吗?我们是否返回我们用于发布的相同查询的列表助手?