不知道它的一个bug或事物是如何意味着一种误解工作:angular.copy与DisableSingleInstance模式解析JS SDK对象返回空对象
- 禁用单一实例模式
- 创建一个新的解析对象(或从服务器查询一个对象)并填充属性
- 复制对象(例如,如果您正在编辑表单上的属性并希望保存/放弃更改的选项)
- 复制为空。 ...
使用解析-JS-SDK 1.9.2和1.4.8角
//comment out the following line and it works ok
Parse.Object.disableSingleInstance();
var parseObjClass = Parse.Object.extend('Comments', {
// Instance methods
initialize: function (attrs, options) {}
},
{});
['name', 'desc'].forEach(function (item) {
Object.defineProperty(parseObjClass.prototype, item, {
get: function() {
return this.get(item);
},
set: function (aValue) {
return this.set(item, aValue);
}
});
});
var parseObj = new parseObjClass();
parseObj.name = 'Hello World'
parseObj.desc = 'Test Object'
console.log('original is ' + JSON.stringify(parseObj));
//--> original is {"name":"Hello World","desc":"Test Object"}
var objCopy = angular.copy(parseObj);
console.log('copy is ' + JSON.stringify(objCopy));
//--> copy is {}
这里是示出https://plnkr.co/edit/UjWe9dl6D6Qkx9ihBSMC
背景plunker:我们使用disableSingleInstance模式,因为我们有一个移动应用和AA web应用程序可以与相同的数据库行(时间表数据)进行交互,并且与js-sdk有问题并不总是具有最新版本的数据...
你'parseObj'不会在登录原包含'name'或'desc' ..不知道“Parse”对象如何工作,虽然 – tanmay
更新后的代码片段包含完整的“parseObjClass”代码,按照调度器 – simonberry
禁用单实例意味着您可以拥有独立的对象实例,更新一个将*不*更新另一个。我觉得你的问题,你更喜欢保持单实例启用。这并不意味着整个应用程序只能有一个参考。这意味着在该服务器上,任何对具有该Id的该类的ParseObject的引用都将具有与更新相同的数据。 –