解析对象的历史实现

时间:2014-03-25 08:01:10

标签: javascript parse-platform

我想为对象的生命周期实现历史记录功能。基本上我有一个对象查询,它与历史有一对多的关系。含义查询对象具有指向历史行数组的指针。当a在保存之前创建此对象时,我执行此操作

Parse.Cloud.beforeSave("Enquiry", function(request, response)
    var currentUser = request.user;
    var currentObject = request.object;

    if (!currentObject.id) {
            var historicalData = new Array();

            var history = new Parse.Object("History");
            var userName = currentUser.get("firstname") + " " + currentUser.get("lastname");
            history.set("user", userName);
            history.set("summary", "Enquiry created ");
            history.save();
            historicalData.push(history);

            currentObject.set("history", historicalData);
   } else {
            //code to fetch existing Enquiry and figure out what changed
            ...
            ...


            var historicalData = existingEnquiry.get("history");

            var history = new Parse.Object("History");
            history.set("user", userName);
            history.set("summary", summary);
            history.save();
            historicalData.push(history);
            currentObject.set("history", historicalData);
    }
}

现在我可以看到历史对象被创建并分配给新创建的对象。此外,当我更新对象时,我可以看到另一个历史对象被持久存储在数据库中,但问题是查询到历史记录引用没有改变,这意味着查询对象仍指向在查询时创建的历史记录对象创建。

我不明白的是即使我已将更新的数组添加到查询的历史记录列中,为什么该列不会更新。任何有关这方面的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您必须在“currentObject.set(”history“,historicalData)”语句之后保存当前对象。

即 currentObject.save();