Keypress的流星更新滞后

时间:2015-07-22 19:26:35

标签: javascript mongodb meteor

所以我在keypress上立即更新mongo模型,但是它落后(我认为),因为该值附加到该模型。在按键上更新模型的最佳方法是什么,以及刷新输入的填充?我应该只是onRendered一次填充输入(那个值实际上没有附加到数据库对象)?

<input type="text" id="name" value="{{getName}}" required autofocus>


Template.campaignEditDetails.events
    "keyup input": (e, t)->
        val = e.currentTarget.value
        field = e.currentTarget.id
        Meteor.call "upsertCampaignField", t.data.campaignId, field, val, t.data.appId

是因为我通过meteor.call而不是客户端进行更新(这是必需的,因为它是一个upsert)?

1 个答案:

答案 0 :(得分:0)

我假设您的getName助手正在从数据库中读取该字段? 如果是这样的话,那就不是保存到DB那么滞后,而是读取oplog&amp;将字段更新为数据库中的内容。

相反,我有值=一个非反应的默认值。 return coll.findOne({foo: bar}, {reactive:false}).txt您仍然可以在重新加载时获取已保存的文本,但是您可以从DB中为每个键入的字符加载。

我还考虑使用input事件,或者至少首先比较值&amp;然后更新它,如果它不同。每次用户点击向上箭头时都无意触及数据库。