好的,所以我对Parse非常熟悉并且在日常开发中使用了大多数功能。但是,现在我需要处理一些多对多关系,并且似乎无法使其正常工作。我曾尝试在Stack上阅读几篇帖子......但没有运气。
任何帮助将不胜感激:
1)' Projects' class =(主分组类和项目详细信息) a)' projectTasks'设置为关系列并指向Tasks类。
2)'任务' class =(由用户提交并在项目中分组的任务)
3)我希望能够查询某些项目,并同时获取关系数据。
test: function(){
console.warn("Running relations test....")
var deferred = $q.defer()
var Projects = Parse.Object.extend("Projects");
var query = new Parse.Query(Projects)
query.equalTo("objectId",Parse.User.current().id)
query.include("projectTasks")
query.find({
success: function(res){
console.log(res)
deferred.resolve(res)
},
error: function(e,r){
console.log(e,r)
deferred.reject(e)
}
})
return deferred.promise
},
我得到的响应永远不会从关系字段返回实际数据......只是另一个承诺或其他任何承诺。
也许我只是认为这一切都错了。任何帮助,将不胜感激。我想存储项目,存储任务,并能够将任务关联到项目,并快速检索每个项目的所有信息。
答案 0 :(得分:0)
你需要做第二次查询来获取关系数据,这是第二次异步调用。
test: function(){
console.warn("Running relations test....")
var deferred = $q.defer()
var Projects = Parse.Object.extend("Projects");
var query = new Parse.Query(Projects)
query.equalTo("objectId",Parse.User.current().id)
query.include("projectTasks")
query.find({
success: function(res){ // my code just assumes you get an answer.....
console.log(res)
res[0].get('projectTasks').query().find().then(tasks => {
const response = {parent: res, tasks: tasks};
deferred.resolve(response);
}
},
error: function(e,r){
console.log(e,r)
deferred.reject(e)
}
})
return deferred.promise
},
如果在这个答案的现实生活中,你得到的是一系列结果,那么调用它的客户端代码可能想要处理第二次调用以获取任务,因为它迭代了项目...