This client-side framework is based on EJS templates and JQuery. The IndigoJS-components library allows for the creation of UI components on HTML pages at runtime.
Javascript and EJS templates are created on the browser using ES5 standards, however template literals are also supported. To ensure cross-platform compatibility, run the grunt command to compile EJS files.
For improved performance and CPU usage, use IndigoJS NodeJs framework to render EJS templates and compile LESS/CSS on the server side .
Demo
Getting Started
1. Download and install NodeJS
http://nodejs.org/download/
2. Install bower
npm install -g bower
3. Download IndigoJS Components
git clone https://github.com/dgofman/indigojs-components.git
4. Install and run demo
cd indigojs-components
npm install
npm start
Additional Tips
To get the latest IndigoJS components updates, use the bower package manager to run your application.
bower install indigojs-components
Execute the grunt command after making changes to EJS or LESS files. This allows for the conversion of LESS to CSS and EJS to HTML.
grunt
To render IndigoJS components on the client side, include Embedded JavaScript Templates:
<script type="text/javascript" src="js/ejs/ejs.min.js"></script>
In order to load dynamic content at run-time, add the indigo-builder attribute to existing container(s) (div, article, section, header, footer, nav etc.) and point it to the desired content file.
<section indigo-builder="build/ejs/content.html"></section>
Before closing a body tag add the builder.js parser.
<script type="text/javascript" src="js/builder.js" indigo-pkgs="igo,jui"></script>
The indigo-pkgs attribute force preloads component libraries prior to the content pages being rendered.
Embedded packages:
- igo - IndigoJS components
- jui - jQuery UI widgets
Hint:
You can replace or attach the content file by using JavaScript:
indigoJS.builder('NEW_CONTENT_FILE', document.querySelector('section'));
Components life cycle phases
loaded
Loaded is a static function that executes after a class has been loaded on the browser for the first time. Implementation of this function can contain global variables and functions within the window
or jQuery
scope.
register
Register is a static function that executes after all classes have been loaded. Implementation of this function can contain class scope event handler(s).
preinit
The Preinitialize function is called once the components are loaded and calls on each jquery element based on its class attribute selector. This allows for the initialization of DOM element default parameters, style, and behavior.
init
The Initialization function occurs after the creation of an object class. It is defined in the indigo core.js library and is executed prior to data-binding.
For more cool features check out IndigoJS framework.