meteor - 在Meteor中,如何将新插入的数据显示为灰色,直到服务器确认为止?

标签 meteor

假设我的应用程序有某种项目列表,用户可以在列表中插入新项目。

Meteor通常做的是:当用户在列表中插入一个项目时,它会立即出现在其浏览器中,而无需等待服务器确认。

我想要的是:当某个项目处于此状态(已提交但尚未由服务器确认)时,它会出现在列表中的正确位置,但显示为灰色。

有没有办法让 meteor 做到这一点?

最佳答案

当然。进行插入的方法。该方法运行时,请检查它是否正在仿真中运行,如果是,请在插入的项目上设置“临时”或“未确认”标志。使用它来决定是否将项目呈现为灰色。

假设您正在使用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");

这就是您需要做的。这样做的原因是,一旦服务器完成了项目的保存,客户端上的本地(模拟)更改将被撤消,并替换为服务器上实际发生的任何事情(不包括“unconfirmed”标志)。

上面是最简单的方法,但会导致所有
您数据库中的记录具有“已确认”属性为true的记录。为避免这种情况,仅在确认属性为false时设置它。

请参阅文档的此部分以获取有关isSimulationMeteor.methods的更多信息。

关于meteor - 在Meteor中,如何将新插入的数据显示为灰色,直到服务器确认为止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10082537/

相关文章:

javascript - 无法从 ipfs.util.addFromFS 收集回调响应

javascript - 如何停止 meteor ?

meteor - react 性、隔离和列表

javascript - meteor "TypeError: Cannot read property ' 0' of undefined"

css - 在 meteor 中使用 chrome DevTools 的实时 css/less/scss 版本

node.js - 基于间隔的 Meteor 更新模板元素

javascript - Meteor 和 underscoreJS - 整数的随机数组及其不连贯的总和

javascript - 如何在 meteor 项目中 Bootstrap 之前调用 jquery-ui 以防止冲突

three.js - 整个图书馆的陨石智能包?

meteor - 如何在不同的IP地址上运行meteor服务器?