Есть ли способ исключить определенные свойства из клиентских обновлений?
Невозможно увидеть свойство при проверке коллекции в консоли
Ответ 1
Совершенно верно.
Удалите пакет autopublish, который включен по умолчанию: meteor remove autopublish
Создайте свою коллекцию: Rooms = new Meteor.Collection("rooms"); Нет необходимости в условном isServer или isClient, так как это должно присутствовать на
В коде на стороне сервера publish только подмножество вашей коллекции, обнуляя поля, которые вы не хотите, чтобы клиент имел:
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");
});
}