我有一个名为TreeFolderObject的子类。其中一个列标题称为“父”,是一个指针字段。它指向同一个类中的另一个对象。这是我用来尝试从这个结构中读取数据的精简代码:
var TreeFolderObject = Parse.Object.extend('TreeFolderObject');
var folderQuery = new Parse.Query(TreeFolderObject);
folderQuery.include("parent");
folderQuery.find().then(function(results) {
for (i in results) {
treeData.push({
title: results[i].get('folderName'),
objectId: results[i].id,
parent: results[i].get("parent")
});
console.log(results[i].get("parent").get("folderName") );
}
},
function(error) {
console.log("failed, with error code: " + error);
}
);
控制台行报告以下输出:
未捕获的TypeError:无法读取未定义的属性'get'
我也尝试将console.log行缩短为:
console.log(results[i].get("parent") );
并报告以下内容:
undefined
index.html:100
ParseObjectSubclass {className: "TreeFolderObject", _objCount: 32, id: "oq5o2zFqIM"}
index.html:100 ParseObjectSubclass {className: "TreeFolderObject", _objCount: 24, id: "oq5o2zFqIM"}
index.html:100 ParseObjectSubclass {className: "TreeFolderObject", _objCount: 41, id: "oq5o2zFqIM"}
etc
这表示浏览器客户端正在获取我之后的信息。如果有意义的话,我就无法弄清楚如何将数据“输出”。
最终,我想识别每个对象的父对象,以便我可以遍历该类。
我做错了什么?我一直尝试在这里和网上搜索,并且有很多非常相似的问题。这显然是一个令人困惑的话题。我只是不能解决它,任何帮助将不胜感激。如何让控制台打印出父对象的folderName属性?
以下是解析控制面板的屏幕截图,如果有帮助的话:
答案 0 :(得分:0)
在我面前添加“var”
var TreeFolderObject = Parse.Object.extend('TreeFolderObject');
var folderQuery = new Parse.Query(TreeFolderObject);
folderQuery.include("parent");
folderQuery.find().then(function(results) {
for (var i in results) {
treeData.push({
title: results[i].get('folderName'),
objectId: results[i].id,
parent: results[i].get("parent")
});
console.log(results[i].get("parent").get("folderName") );
}
},
function(error) {
console.log("failed, with error code: " + error);
}
);
答案 1 :(得分:0)
在这里回答我自己的问题:
我最终发现了答案,它与将我标记为var或者我正在查询同一个类的事实无关。解决方案是在查询中放置一个条件行。换句话说,在我之前发布的代码的前两行之后插入它:
folderQuery.exists( “父”);
在我的情况下,类中的每个对象除了一个之外都有一个父对象,所以这个工作正常。我不明白的是,如果我打算查询整个类,为什么有必要对查询设置一个条件。
在StackOverflow上浏览了大量与解析指针相关的问题后,我发现了解决方案。没有其他人似乎陷入了遗漏条件行的完全相同的陷阱,最终我意识到我的解析查询不符合约定。如果这种认识能够帮助其他人,我将很乐意帮助你!
如果有人可以帮我解释为什么我需要设置条件,即使我在查询全班,请告诉我。与此同时,我很高兴找到了这个解决方案,因为它阻碍了我项目的开发。