无法更新Parse对象的每一列

时间:2014-06-17 15:36:05

标签: javascript parse-platform

我正在更新一个对象。我首先通过以下方式找到它:

**编辑**

添加了用于设置和保存对象的附加代码。

    var query = new Parse.Query(iBeacon);
    query.equalTo("uuid", searchUUID.children("input[type=text]").val().toString());

    query.find({
        success: function(results) {

       var detailsObject = results[0];

       //tduuid, tdoffer, tdproximity etc are globals intitialized earlier in code
       //from values obtained from html table cells
       var uuid = tduuid.children("input[type=text]").val().toString();
       var offer = tdoffer.children("input[type=text]").val().toString();
       var prox = parseInt(tdproximity.children("input[type=text]").val().toString());
       var campaignId =tdcampaignId.children("input[type=text]").val().toString();
       var location = tdGeoLocation.children("input[type=text]").val().toString();
       var subLoc = tdinStoreLocation.children("input[type=text]").val().toString();

        detailsObject.set("proximity", prox);
        detailsObject.set("campaignId", campaignId);
        detailsObject.set("location", location);
        detailsObject.set("sub_location", subLoc);
        detailsObject.set("uuid", uuid);

        detailsObject.save(null, {
            success: function(detailsObject) {

                var content = Parse.Object.extend("Content");
                var contentQuery = new Parse.Query(content);
                var id = detailsObject.id;


                //Querying Content Table on detailsObject to obtain correct record

                contentQuery.equalTo("descId", detailsObject);
                contentQuery.find({

                    success:function(contentObject){

                        contentObject[0].set("offer", offer);
                        contentObject[0].save(null, {
                            success: function (result){
                                //alert("offer saved successfully");
                                document.location.reload(true);

                            }, error:function(error){
                                alert("unable to save offer");
                            }
                        });
                    },error: function(error){
                        alert("Error  "+ error.message);
                    }
                });
            },
            error: function(error) {
                alert(error.code + " , " + error.message);
            }
        });

  },
    error: function(error) {
        alert(error.message);
    }
});

所以你可以看到我查询了这个专栏&#34; uuid&#34;在iBeacon课程中。我正在根据用户输入到html表中的数据进行更新。我可以更新其他所有列,但我无法更新我的&#34; uuid&#34;,我猜这是因为这是查询的一部分,我不能这样做吗?我通过查找具有不同参数的对象来尝试这一点,特别是那些无法更新的对象....我需要更新它并且我很感激任何帮助。< / p>

进一步编辑

我一直在尝试这方面的事情,并且已经注意到,如果我将硬编码字符串放入我设置uuid的地方,即detailsObject.set("uuid", "UUID EDIT");这可以正常工作,但是,当我设置uuid时获得的值表格单元格没有继续。我调试了它并获得了正确的值。为了测试,我查询了categoryId,当我尝试更新categoryId它也不会工作,但如果我更新了uuid或任何其他列而没有更新categoryId,那就没有问题了。

使用不同的编辑器,在调试Uncaught TypeError: Cannot read property 'set' of undefined

时,我得到一个未被捕获的TypeError

2 个答案:

答案 0 :(得分:0)

需要注意的一点是,Parse字符串区分大小写。如果将它们存储为小写,则需要使用小写进行搜索。

使用类似uuid字段的内容,您可以在写入之前强制输入大写/小写,然后根据需要强制用于搜索的用户输入为大写/小写。

答案 1 :(得分:0)

我终于解决了这个问题。这个问题确实是在搜索查询时引入了编辑过的uuid而不是原始的uuid时,有一个与javascript初始化的混合。

所以我需要将原始的uuid(从解析中提取)存储为全局字符串变量。我错误地存储了它。

谢谢大家的帮助