Javascript 如何在解析中将objectId保存到其他类?

Javascript 如何在解析中将objectId保存到其他类?,javascript,jquery,parse-platform,Javascript,Jquery,Parse Platform,我们有两个班,“用户”和“学校”。学校班级包含“objectId”列 我想将“objectId”列保存到列“currentSchool”表中的列“User”,但出现以下错误: {“code”:111,“error”:“key currentSchool的类型无效,应为*Schools,但得到字符串”} 以下是代码片段: Parse.User.signUp(用户名、密码、, { firstName:$scope.vm.form.firstName, lastName:$scope.vm.form.

我们有两个班,
“用户”
“学校”
。学校班级包含
“objectId”

我想将
“objectId”
列保存到
列“currentSchool”
表中的
列“User”
,但出现以下错误:

{“code”:111,“error”:“key currentSchool的类型无效,应为*Schools,但得到字符串”}

以下是代码片段:

Parse.User.signUp(用户名、密码、,
{
firstName:$scope.vm.form.firstName,
lastName:$scope.vm.form.lastName,
全名:$scope.vm.form.firstName++$scope.vm.form.lastName,
电邮:电邮,,
车载应用程序ID:$scope.applicationID,
当前学校:Schoolid,
培训状态:“视频”,
视频状态:0,
ACL:new Parse.ACL()
}, {
成功:功能(用户){
$(“#注册表单”).trigger('reset');
console.log('success');
$('.signupMsg').text(“已成功创建帐户。请验证您的电子邮件地址”);
$('.submit按钮').attr(“已禁用”,false);
},
错误:函数(用户,错误){
$('.signupMsg').text(error.message);
$('.submit按钮').attr(“已禁用”,false);
}
});

@Mazel Tov实际上是对的:

如果您查看DB模式(如果您运行的是开源版本),或者查看用户表中的“School”选项卡名称,您将看到它的类型是
School

这意味着您需要发送解析一个
Parse.Object
来表示一所学校,而不是它的id:)(因为id是一个字符串,这就是错误的来源)

所以要解决它:

var SchoolClass = Parse.Object.extend("School");
var schoolObject = new SchoolClass();
schoolObject.set("objectId", schoolId);

Parse.User.signUp(username, password,
{
    firstName: $scope.vm.form.firstName,
    lastName: $scope.vm.form.lastName,
    fullName: $scope.vm.form.firstName + " " + $scope.vm.form.lastName,
    email: email,
    onboardApplicantId: $scope.applicantId,
    currentSchool: schoolObject,
    trainingStatus: "videos",
    videoStatus: 0,
    ACL: new Parse.ACL()
}, {
    success: function (user) {
        $("#signupForm").trigger('reset');
        console.log(' success ');
        $('.signupMsg').text("Account created successfully. Please verify your email address.");
        $('.submit-button').attr("disabled", false);
    },
    error: function (user, error) {
        $('.signupMsg').text(error.message);
        $('.submit-button').attr("disabled", false);
    }
});
选项1:您获取了您拥有的学校列表,您只需将它们传递给Parse即可


选项2:通过删除列并将其重新读取为
字符串
类型来更改学校类型。

您必须首先创建学校对象实例,然后设置学校对象ID,然后将学校实例设置为用户的
当前学校
。通过以下步骤,您将班级学校的指针保存到您的学校ID:

示例:

var SchoolClass = Parse.Object.extend("School");
var schoolObject = new SchoolClass();
schoolObject.set("objectId", schoolId);

Parse.User.signUp(username, password,
{
    firstName: $scope.vm.form.firstName,
    lastName: $scope.vm.form.lastName,
    fullName: $scope.vm.form.firstName + " " + $scope.vm.form.lastName,
    email: email,
    onboardApplicantId: $scope.applicantId,
    currentSchool: schoolObject,
    trainingStatus: "videos",
    videoStatus: 0,
    ACL: new Parse.ACL()
}, {
    success: function (user) {
        $("#signupForm").trigger('reset');
        console.log(' success ');
        $('.signupMsg').text("Account created successfully. Please verify your email address.");
        $('.submit-button').attr("disabled", false);
    },
    error: function (user, error) {
        $('.signupMsg').text(error.message);
        $('.submit-button').attr("disabled", false);
    }
});

好的,我得到的答案是:

我在“Parse.User.signUp”中这样做:

当前学校:学校ID,

应在哪里:

currentSchool:{“\uu类型”:“指针”,“类名”:“学校”,“对象ID”:SchoolId},

我们还需要传递类名,并且需要通过类型指针定义它是一个关系,从而在它们之间创建关系

我希望这对其他人也有帮助


谢谢guyz

您没有想到必须保存指针而不是字符串吗?谢谢您的回复。。。。。好的,选项2我不能这么做,你能简单地解释一下选项1吗,我是新来解析的,如何再次传递它们来解析。。。请建议1)无需获取即可完成。正确的方法是创建一个解析对象,然后设置objectId。