Data-oriented architecture for web applications.
$ npm install --save-dev statetreeAsyncData is a wrapper for objects that are often updated, changed and synced.
var User = new AsyncData();User._loaded // identification that the object is loaded or not
User._updating // identification that the object is updating or not
User._changed // identification that the object has been changed locally (and is not saved)
User._old_value // contains old version of the object
User._error //
User._error_message //getPromise
Returns a Promise object which you can use to know if the data has been loaded/updated.
User.getPromise().then(function() {
console.log(User.Name + 'has been updated');
})_update
Calls resolve when data is received from the server, merges data.
User.setUpdating(function(apply, error, reject) {
$http
.post('/api/users', User)
.success(function() {
apply();
})
.error(function() {
reject();
error();
})
})isChanged
Checks if the object has been changed locally.
if(User.isChanged()) console.log(User.Name + 'changed');getChangedFields
Returns fields that have been changed locally.
User.setUpdating(function(apply, error, reject) {
$http
.post('/api/users', User.getChangedFields())
.success(function() {
apply();
})
.error(function() {
reject();
error();
})
})revert
Revert old value
User.setUpdating(function(apply, error, reject) {
$http
.post('/api/users', User)
.success(function() {
apply();
})
.error(function() {
reject();
User.revert();
})
})