有没有办法从客户端更新中排除某些属性?
在控制台中检查集合时应该看不到该属性
绝对地。
移除autopublish
默认开启的包:meteor remove autopublish
创建您的集合:Rooms = new Meteor.Collection("rooms");
不需要条件 isServer 或 isClient,因为两者都应该存在
在您的服务器端代码中,通过清零您不希望客户端拥有的字段,仅发布您的集合的一个子集:
if (Meteor.isServer) {
//you could also Rooms.find({ subsetId: 'some_id' }) a subset of Rooms
Meteor.publish("rooms", function () {
return Rooms.find({}, {fields: {secretInfo: 0}});
});
}
注意:{secretInfo: 0}
上面的设置不会将集合secretInfo
中每一行的所有实例都设置Rooms
为零。它从客户端集合中完全删除了该字段。认为是0
关闭开关:)
将客户端订阅到已发布的集合:
if (Meteor.isClient) {
Deps.autorun(function() {
Meteor.subscribe("rooms");
});
}
希望这可以帮助!