我遇到了Simperium的问题。
This little plnkr允许一位用户在我的应用上创建一个帐户,并通过该帐户进行身份验证。
进行身份验证后,您可以使用名称:值对修改object_to_update
存储桶中的mydata_data
对象(按更新按钮即可执行此操作!)。
问题是我总是在更新object_to_update
对象时获取桶的本地回调。我不明白为什么。更新是在本地触发的(我没有其他远程东西在这个页面上做东西),但即使在本地触发也总是触发本地回调。
local
的文档说:
只要库需要在向您发送通知事件之前检查对象的当前本地状态,就会触发此回调。这样就可以将任何本地更改合并到更新的对象中。在上面的示例中,您可能正在同步来自名为“mytextfield”的HTML元素的文本输入。如果有可用的更新(此对象在其他位置已更改),则库将期望获取对象的当前状态,以便它可以将本地更改与远程更改合并。当您收到通知事件时,您可以直接更新“mytextfield”。
但更新并未在其他地方触发,我在本地触发!
我认为更新成功的唯一方法是复制更新代码:
bucket.update ("object_to_update", {on: va});
在本地回调中,具有完全相同的on
和va
值,但首先重复它的重点是什么?必须有另一种解释。
答案 0 :(得分:1)
我相信图书馆只是在查询应用程序,以获取应发送给服务器的数据。预计对local
的调用将始终返回对象的最新本地数据(即使您已在应用中的其他位置更改过它)。