Parse platform 筛选器解析。应保存到服务器的对象属性
我有这个Parse.Object,我想保存到服务器上,但我想将保存的这个对象的属性列为白名单Parse platform 筛选器解析。应保存到服务器的对象属性,parse-platform,Parse Platform,我有这个Parse.Object,我想保存到服务器上,但我想将保存的这个对象的属性列为白名单 Parse.Object.extend('someObject', { defaults: { foo: 1, bar: 2, computedProperty: function() { return this.get('foo') + this.get('bar') } }, get: function(attr) { var va
Parse.Object.extend('someObject', {
defaults: {
foo: 1,
bar: 2,
computedProperty: function() {
return this.get('foo') + this.get('bar')
}
},
get: function(attr) {
var value = Parse.Object.prototype.get.call(this, attr)
return _.isFunction(value) ? value.call(this) : value
}
})
如您所见,此对象在其属性中有一个属性。我想在保存此Parse.Object时过滤掉computedProperty。这可能吗?因此,我们找到了一种过滤保存的属性列表的方法
Parse.Object.extend('someObject', {
defaults: {
foo: 1,
bar: 2,
computedProperty: function() {
return this.get('foo') + this.get('bar')
}
},
get: function(attr) {
var value = Parse.Object.prototype.get.call(this, attr)
return _.isFunction(value) ? value.call(this) : value
}
})
如果您想这样做,必须重写Parse.Object上名为_getSaveJSON的私有、未记录的方法,因此上面的完整模型是:
Parse.Object.extend('someObject', {
defaults: {
foo: 1,
bar: 2,
computedProperty: function() {
return 1+2
}
},
get: function(attr) {
var value = Parse.Object.prototype.get.call(this, attr)
return _.isFunction(value) ? value.call(this) : value
},
_getSaveJSON: function() {
var model = this
var json = _.clone(_.first(this._opSetQueue))
Parse._objectEach(json, function(op, key) {
json[key] = op.toJSON();
});
var whitelistedAttributes = ['foo', 'bar']
return _.pick(json, whitelistedAttributes)
}
})