使用 Parse JavaScript SDK 更新对象数组
Update array of objects with Parse javascript SDK
我正在尝试更新 Parse 中的一个对象,该对象具有其他对象的数组作为其属性之一。
例如,有一个父类型"Type1",它有一个数组属性"childTypes",它存储"Type2"对象。
如果我从服务器查询 Type1 然后将其保存回来,它可以工作,但我想在查询后更新 Type2 实例的某些字段,将它们重新排列在数组中,然后保存回 Type1。
我收到错误"无法创建指向未保存的 ParseObject 的指针",但我检查了 Type1 对象有它的 id,所有 Type2 实例都有它们的 id。它们是 Parse.Object 对象。
我正在尝试像这样保存:
var oldChildTypes = type1.get("childTypes");
// rearrange childtypes here ...
var childTypes = [];
childTypes.push(...) // push rearranged Type2 items one by one
type1.set("childTypes", childTypes);
type1.save(...);
我已经尝试过:
只保存空数组
type1.set("childTypes", [])
- 它有效。但是一旦我向其添加 Type2 对象之一 - 同样的错误,尽管这些 Type2 对象取自同一 type1 对象的"childTypes"数组。还有一个非常奇怪的情况 - 如果我使用 JSON.stringify 将 Type1 对象转换为字符串,它会产生正确的结果,但这个调用
JSON.stringify(type1.get("childTypes"))
给出了与未保存的 ParseObject 完全相同的错误。我不知道stringify是如何与Parse.Object连接的。可能解析覆盖某些内容。
也许在Javascript SDK中有不同的设置数组的方法?我在 API 中找不到它。"Parse"这个名字使得很难用谷歌搜索任何东西:(尤其是"json"这个词。
这里是 ParseObject 的源代码,当对象没有 id 属性时会产生此错误。我的层次结构中只有一个对象没有 id,它是一个数组。任何帮助将不胜感激。
数组很好:|只是另一个错误导致在层次结构中添加其他对象,并且在控制台日志中不可见。
虽然有趣的是为什么这个错误会破坏 JSON.stringify
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在Javascript中转换对象数组
- 在JavaScript中通过索引从对象数组中获取值
- Backbone虹吸以获取对象数组
- 如何在DataTables 2.1中迭代对象数组
- Javascript-根据赋值顺序,按键合并对象数组
- 将事件附加到对象/数组
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 在对象数组中查找多个值的d3范围
- Undercore.js获取对象数组中键对象的值
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何通过json对象数组为嵌套对象赋值
- 如何循环通过2个对象数组并通过匹配id进行合并
- 为对象数组创建列表项
- 如何使用javascript合并两个对象数组
- JSON到对象数组,并向每个对象添加项
- JavaScript:从对象数组中获取唯一值及其计数
- 按不同项目对对象数组进行排序