将成功函数中的对象id发送到parse.com中的另一个函数

时间:2016-02-03 10:49:40

标签: javascript parse-platform

我在parse.com上遇到问题,我在其中获取类型的id并将其传递给另一个上传图像的函数。然后在图像中取出type.id并将其发布到另一个将数据保存到类中的函数。

这是我迄今为止尝试过的但没有成功。

- OnClick代码

$('#submitId').on("click", function(e, f) {
         e.preventDefault();
        typeSave(typeid1);

        //var objnew1 = typeSave();

        console.log("inside onclick " + type2);
        var fileUploadControl = $("#profilePhotoFileUpload")[0];
        var file = fileUploadControl.files[0];
        var name = file.name; //This does *NOT* need to be a unique name
        var parseFile = new Parse.File(name, file);
        parseFile.save().then(
            function() {
                //typeSave();
                type2 = typeid1;
                saveJobApp(parseFile, type2);
                console.log("inside save onclick " + type2);
            },
            function(error) {
                alert("error");
            }
        );
    });

- 输入代码

var type;
var typeid1;
var type2;
    function typeSave() {
        var type = new Parse.Object("type");
        var user = new Parse.Object("magazia");
        //var bID = objbID;
       //user.id = bID;

        var cafebar = document.getElementById('cafe_bar').checked;
        if (cafebar) {
            var valueCafebar = true;
        } else {
            var valueCafebar = false;
        }
        var club = document.getElementById('club').checked;
        if (club) {
            var valueClub = true;
        } else {
            var valueClub = false;
        }
        var restaurant = document.getElementById('restaurant').checked;
        if (restaurant) {
            var valueRestaurant = true;
        } else {
            var valueRestaurant = false;
        }
        var pistes = document.getElementById('pistes').checked;
        if (pistes) {
            var valuePistes = true;
        } else {
            var valuePistes = false;
        }
        type.set("cafebar", valueCafebar);
        type.set("club", valueClub);
        type.set("restaurant", valueRestaurant);
        type.set("pistes", valuePistes);
        type.save(null, {
            success: function(type) {
            //saveJobApp(type.id);
            var typeid1 = type.id;
            console.log("inside type save " + typeid1);
              //return ;

            },
            error: function(type, error) {
                alert('Failed to create new object, with error code: ' + error.description);
            }
        });
    }

- 将数据发送到parse.com类代码

 function saveJobApp(objParseFile, type2) {
        var jobApplication = new Parse.Object("magazia");
        var email = document.getElementById('email').value;
        var name = document.getElementById('name').value;
        var description = document.getElementById('description').value;
        var website = document.getElementById('website').value;
        var phone = document.getElementById('phone').value;
        var address = document.getElementById('address').value;
        var latlon = document.getElementById('latlon').value;
        var area = document.getElementById('area').value;
        var value = latlon;
        value = value.replace(/[\(\)]/g, '').split(', ');
        console.log("inside saveJobApp " + type2);
        var x = parseFloat(value[0]);
        var y = parseFloat(value[1]);
        var point = new Parse.GeoPoint(x, y);
        jobApplication.set("image", objParseFile);
        jobApplication.set("email", email);
        jobApplication.set("phone", phone);
        jobApplication.set("address", address);
        jobApplication.set("name", name);
        jobApplication.set("website", website);
        jobApplication.set("description", description);
        jobApplication.set("area", area);
        jobApplication.set("latlon", point);
        jobApplication.set("typeID", type2);
        jobApplication.save(null, {
            success: function(gameScore) {
               // typeSave(jobApplication.id);
            },
            error: function(gameScore, error) {
                alert('Failed to create new object, with error code: ' + error.description);
            }
        });
    }

所以当我点击按钮首先运行typesave()函数,然后它在解析时在类型类上发布类型,从成功函数获取type.id并发送它时,我正在尝试恢复到parseFile.save().then 然后将objectFiletype2type.id)发送到saveJobApp并将它们保存在课程magazia

我从console.logs得到的是这个

enter image description here 这意味着我的代码发布到类型类并采用type.id 但它并没有通过parsefile保存将它发送到magazia类。 知道我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我注意到你的错误不是关于函数,而是关于尝试将type.id作为字符串传递而不是作为saveJobApp函数中的函数传递。

如果你尝试这样做

function saveJobApp(objParseFile , objtype) {
        var jobApplication = new Parse.Object("magazia");
        var type = new Parse.Object("type");

        type.id = objtype;
        jobApplication.set("typeID", type);

我认为它会奏效。

并且还将onclick和ParseFile保存代码更新为此

$('#submitId').on("click", function(e) {
    typeSave();
    });
    function PhotoUpload(objtype){

        var fileUploadControl = $("#profilePhotoFileUpload")[0];
        var file = fileUploadControl.files[0];
        var name = file.name; //This does *NOT* need to be a unique name
        var parseFile = new Parse.File(name, file);

        parseFile.save().then(
            function() {
                saveJobApp(parseFile, objtype);
            },
            function(error) {
                alert("error");
            }
        );
    }

typeSave()中的成功函数 应该是这样的

type.save(null, {
            success: function(type) {
                PhotoUpload(type.id);
            },

希望这会有所帮助:)