stb-model
v1.3.1
Published
STB SDK base model implementation.
Downloads
11
Maintainers
Readme
STB SDK base model implementation
Represents domain-specific data or information that an application will be working with. A typical example is a user account (e.g name, avatar, e-mail) or a music track (e.g title, year, album). Holds information, but don’t handle behaviour and don’t format information or influence how data appears.
Installation
npm install stb-model
Usage
Add the constructor to the scope:
var Model = require('stb-model');
Create an empty instance:
var model = new Model();
Create an instance with some data:
var model = new Model({
attr1: value1,
attr2: value2,
});
Clear all data:
model.clear();
emits
clear
event in case some data is present
Clear and set new model data:
model.init({
attr3: value3,
attr4: value4,
});
can emit
clear
andinit
events
Check an attribute existence:
if ( model.has('attr3') ) {
...
}
Get a model attribute value by name:
var value = model.get('attr1');
Update or create a model attribute:
var operationStatus = model.set('attr5', 'value5');
emits
change
event withprev
field in data in case of update operation
Delete the given attribute by name:
var operationStatus = model.unset('attr5');
emits
change
event
Performance notes
It is highly advisable to access a model data directly in case no events are required.
So instead of
var value = model.get('attr1');
model.set('attr5', 'value5');
to avoid performance penalty it's better to use
var value = model.data.attr1;
model.data.attr5 = 'value5';
Debug mode
There is a global var
DEBUG
which activates additional consistency checks and protection logic not available in release mode.
In debug mode the constructor is exposed to the global namespace as window.Model
.
Contribution
If you have any problem or suggestion please open an issue here. Pull requests are welcomed with respect to the JavaScript Code Style.
License
stb-model
is released under the GPL-3.0 License.