Update attribute + hooks
This commit is contained in:
parent
56b7a3a3ea
commit
e4e4a43175
|
@ -323,6 +323,7 @@ AbstractClass.prototype.updateAttribute = function (name, value, cb) {
|
|||
};
|
||||
|
||||
AbstractClass.prototype.updateAttributes = function updateAttributes(data, cb) {
|
||||
var inst = this;
|
||||
var model = this.constructor.modelName;
|
||||
Object.keys(data).forEach(function (key) {
|
||||
this[key] = data[key];
|
||||
|
@ -339,23 +340,32 @@ AbstractClass.prototype.updateAttributes = function updateAttributes(data, cb) {
|
|||
}.bind(this));
|
||||
|
||||
function update() {
|
||||
this.trigger('update', function (done) {
|
||||
this._adapter().updateAttributes(model, this.id, data, function (err) {
|
||||
if (!err) {
|
||||
Object.keys(data).forEach(function (key) {
|
||||
this[key] = data[key];
|
||||
Object.defineProperty(this, key + '_was', {
|
||||
writable: false,
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
value: data[key]
|
||||
this.trigger('save', function (saveDone) {
|
||||
this.trigger('update', function (done) {
|
||||
|
||||
Object.keys(data).forEach(function (key) {
|
||||
data[key] = this[key];
|
||||
}.bind(this));
|
||||
|
||||
this._adapter().updateAttributes(model, this.id, data, function (err) {
|
||||
if (!err) {
|
||||
Object.keys(data).forEach(function (key) {
|
||||
inst[key] = data[key];
|
||||
Object.defineProperty(inst, key + '_was', {
|
||||
writable: false,
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
value: data[key]
|
||||
});
|
||||
});
|
||||
}.bind(this));
|
||||
}
|
||||
done.call(this, function () {
|
||||
cb(err);
|
||||
});
|
||||
}.bind(this));
|
||||
}
|
||||
done.call(inst, function () {
|
||||
saveDone.call(inst, function () {
|
||||
cb(err);
|
||||
});
|
||||
});
|
||||
}.bind(this));
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue