Fast and lightweight JSON to DOM generation in less than 60 lines.
npm install todomFast and lightweight JSON to DOM generation in less than 60 lines.
Here is toDOM :
`` javascript
var scope = {};
var el = toDOM({
attr : { className : 'my_class' },
events : {
click : function() {
console.log('div clicked');
},
},
children : [
{
tag : 'p',
label : 'myParagraph',
innerHTML : 'Hello',
style : {
backgroundColor : '#000'
}
}
]
}, scope);
document.body.appendChild(el);
`
Will create the following :
` html `
Hello
With a console.log on click and a reference of the
DOM element in scope :
`javascript`
scope.myParagraph // domElement
scope.myParagraph.innerHTML // 'Hello'
`javascript
var View = function(o) {
if (o.domDescription) {
this.buildEl(o.domDescription);
}
};
View.prototype = {
buildEl : function(domDescription) {
this.el = toDOM(domDescription, this);
}
}
var myView = new View({
domDescription : {
tag : 'p',
children : [
{
label : 'helloEl',
innerHTML : 'hello!'
}
]
}
});
myView.el // DOM element
myView.helloEl // DOM element
myView.helloEl.innerHTML // 'hello!'
`
## Install ##
toDOM is coded as AMD module but can be installed with npm, bower or old-fashioned src=".min.js".
#### With npm: ####
``
npm install todom
and use it with nodejs:
``
var toDOM = require('todom')
#### With bower: ####
` `
bower install toDOM
Point toDOM to [bower_components_path]/toDOM/app/toDOM.js into your requirejs path config
and load it with requirejs:
`javascript
require(['toDOM/toDOM'], function( toDOM ){
})
`
#### With src=" .min.js" ####
Inside the dist folder, download latest standalone minified version or development version and include it in your html page:
`html`
The module is available via the scope
`javascript`
window.toDOM
*
## Documentation ##
See jsdoc-generated documentation in /documentation
app -> development files
|- bower_components -> bower front-end packages
|- main.js -> main file for browser and node.js, handle AMD config
|- to_dom -> main AMD module
test -> unit tests
|
tasks -> Grunt tasks, see generator-mangrove-module
|
dist -> distribution & build files
|
node_modules -> node packages
|
documentation -> jsdoc generated documentation
#### On the browser ####
Run grunt test:browser and open test/ on your browser.
#### On a headless browser ####
grunt test:headless will run your tests in a headless browser, with phantomjs and mocha
grunt test:node will run your tests with node and mocha.
Because of requirejs, the mocha command does not work.
This project uses Node.js, Grunt and Require.js for the build process. If for some reason you need to build a custom version install Node.js, npm install` and run:
grunt build
## Yeoman Mangrove module Generator ##
This module is based on a Yeoman generator: Generator-mangrove-module
Check it for task-related references such as build, deploy etc ..