Ответ 1
Конечно. Сделайте метод, который выполняет вставку. Когда этот метод запускается, попросите его проверить, работает ли он в симуляции, и если да, установите флажок "временно" или "неподтвержденный" во вставленном элементе. Используйте это, чтобы решить, нужно ли отображать элемент как greyed вне.
Предполагая, что вы используете MongoDB:
// Put this in a file that will be loaded on both the client and server
Meteor.methods({
add_item: function (name) {
Items.insert({name: name,
confirmed: !this.isSimulation});
}
});
Вызов метода:
Meteor.call("add_item", "my item name");
Это все, что вам нужно сделать. Причина этого в том, что после того, как сервер завершит сохранение элемента, локальные (имитируемые) изменения на клиенте будут отменены и заменены тем, что на самом деле произошло на сервере (который не будет включать флаг "неподтвержденный" ).
Это самый простой способ сделать это, но это приведет к тому, что все записи в вашей базе данных, имеющие "подтвержденный" attrbiute истины. Чтобы этого избежать, установите только подтвержденный атрибут, если он неверен.
Обратитесь к этой части документации за дополнительной информацией о isSimulation
и Meteor.methods