我需要在保存前檢查原始對象,以查看哪些值已更改。目前,我有這樣的:PARSE檢查BeforeSave上的原始對象
Parse.Cloud.beforeSave("Stats", function(request, response) {
if (!request.object.isNew()){
var query = new Parse.Query("Stats");
query.get(request.object.id, {
success: function(oldObject) {
alert('OLD:' + oldObject.get("Score") + "new:" + request.object.get("Score"));
/*Do My Stuff Here*/
response.success();
},
error: function(oldObject, error) {
response.error(error.message);
}
});
}else{
response.success();
}
});
問題是oldObject
等於request.object
。
此外,警報結果是這樣的:OLD:10 new:10
,但真正的舊分數是5
。另外根據之前的保存輸入日誌,原來的確是5
。
任何ideia我做錯了什麼?
編輯: 這是之前的保存日誌。
before_save triggered for Stats as master:
Input: {"original":{"achievements":[],"Score":"100"updatedAt":"2015-11-02T10:09:24.170Z"},"update":{"Score":"110"}}
Result: Update changed to {"Score":"110"}
編輯2: 有沒有什麼辦法得到髒值?
console.log("dirty: "+ request.object.dirty("score"));
I2015-11-03T14:23:12.198Z]dirty: true
您是否檢查過您的分數字段是否像request.object.dirty(「Score」)那樣髒? –
'request.object.dirtyKeys'和'request.object.dirty(「Score」)'return'undefined' – rob180
有些東西一定是錯的,因爲如果你正在更新字段,你應該看到它們被標記爲髒。順便說一句,JavaScript的'警報'功能如何在雲上工作? –