- A tiny, pure, event-based model wrapper for the MVC or MDV (Model-driven Views) pattern.
- It is far thinner than Backbone. None of View, Controller or Router is involved.
- Strict data hiding but straightforward way to use.
- Provides minimal built-in APIs but supports all external and conventional methods to access the model.
- Model can be nested and supports bubbling events.
npm install nerv
- NervJS can either be viewed as an independent library, or as a part of OzJS mirco-framework.
- It's wrapped as an AMD (Asynchronous Module Definition) module. You should use it with oz.js (or require.js or similar for handling dependencies).
- If you want to make it available for both other AMD code and traditional code based on global namespace. OzJS provides a mini define/require implementation to transform AMD module into traditional module pattern.
- See http://ozjs.org for details.
Add to your project as new dependency
Or download directly from Github
var nerv = require('nerv');
var papercover = nerv();
var hardcover = nerv({
isHard: true
});
var pageModel = nerv.model({
init: function(){...},
defaults: {
text: '',
number: 0
},
mark: function(){...}
});
var page = pageModel({ number: 1 });
var page2 = pageModel({ number: 2 });
page.each(function(member){}, context)
--page.get(key)
--page.data()
--page.data(key)
--page.set(key, function(value){ }, context)
--page.set(key, function(model){ }, context)
--page.set(key, value, context)
--page.set(key, model, context)
--page.set(function(agent){ }, context)
--page.set(model, context)
--page.remove(key)
--page.reset()
--page.find(value)
--page.find(model)
--page.setter(key, function(){})
--page.observer
--- API:
- Same as EventMaster
- Event:
{key}:new
--{key}:update
--{key}:delete
--change
--
- API:
var book = nerv([]);
var bookB = nerv.collection({
selectPage: function(number){...}
});
book.add(value)
--book.add(model)
--book.size()
--- Same as
nerv.Model
Copyright (c) 2010 - 2013 dexteryy
Licensed under the MIT license.