大多数用于编辑文档的协作在线工具(例如 Google 文档)都会提供一条消息,验证您的更改已在编辑完成后保存。
我想在 Meteor 中做同样的事情;向用户提供一条消息,指示最近在客户端上所做的给定更改是否已成功传播到服务器。我希望有一些简单的方法来询问“服务器是否接受了所有客户端更改?”
我找不到 - 是否有支持的 API 来执行此操作?我可以探索 Meteor.Collection._* 属性,但宁愿不使用内部的、易于更改的平台方法和变量。
请记住,收集操作实际上只是方法,在引擎盖下。因此它们也提供了指定回调函数的选项(请参阅http://docs.meteor.com/#/full/insert)。因此,如果您想确定您的操作(例如 an insert
)是否成功,那么只需提供这样的回调并使用它来更新您想要提供给用户的任何指示。例如:
Documents.update(currentId, {$set: {text: "my new text"}}, function(err, count) {
if (err) {
Session.set('status', "Error saving document!");
alert("Couldn't save changes.");
} else {
Session.set('status', "All changes saved.");
}
});