dstore: how to create an observable data store
October 15, 2015Last update: March 28, 2020
Tested with: dstore 1.1.0 with Dojo 1.10.4
dstore is a framework to manage client-side data created by Sitepen (the company behind Dojo Toolkit) and that will be the object store interface for Dojo 2.
The problem
We want to be notified when an action (add, delete or update) is performed on our data store.
A solution
Below a small recipe to create a trackable store: it notifies observers when an action is performed.
require([
"dojo/_base/declare",
"dstore/Memory",
"dstore/Trackable"
], function(declare, Memory, Trackable) {
var Store = declare([Memory, Trackable]);
var data = [
{
"id": 1,
"name": "Test 1"
}, {
"id": 2,
"name": "Test 2"
}
];
var store = new Store({"data": data});
var tracker = store.track();
tracker.on("add, update, delete", function(event) {
var newIndex = event.index;
var oldIndex = event.previousIndex;
var object = event.target;
// do something more ...
});
});
References
-
Observer pattern on Wikipedia
-
track() on dstore official documentation