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。