所以我在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)?
答案 0 :(得分:0)
我假设您的getName
助手正在从数据库中读取该字段?
如果是这样的话,那就不是保存到DB那么滞后,而是读取oplog&amp;将字段更新为数据库中的内容。
相反,我有值=一个非反应的默认值。 return coll.findOne({foo: bar}, {reactive:false}).txt
您仍然可以在重新加载时获取已保存的文本,但是您可以从DB中为每个键入的字符加载。
我还考虑使用input
事件,或者至少首先比较值&amp;然后更新它,如果它不同。每次用户点击向上箭头时都无意触及数据库。