Concept - write-software/enginejs GitHub Wiki

Basic Engine JS Concepts

MVC (Model View Controller)

EngineJS has its own set of primary classes from which the models, views and controllers are derived. EngineJS lends some elements from React and Angular. There is also the app class "engine" which drives the application and keeps track of all models, views and controllers.

While the framework comes with a set of standard component ( controllers ) the developer can design their own based of class inheritance of the core component class.

One-Way & Two-Way Data Binding

A view can have markers that act as placehold for the data model properties (see data binding).

example:

<span>{{this.title}}</span>

Also within the view an element can be set for observation whereby any data changes are automatically reflected in the model data. This means that as a user enter their data the underlining model data is being updated.

example:

<input type="text" id="form1" class="form-control" en-bind="fullname}}" en-attr="value" en-observe="value">

Building Blocks

EngineJS is build on:-

  • Material Design for Bootstrap 4
  • JQuery
  • MomentJS
  • PouchDB - CouchDB
  • Handlebars JS
  • md5
  • Font Awesome
  • Third party vendor packages

Third party packages include

  • ckeditor
  • chartjs
  • datatable
  • gmaps
  • ico rangeslider
  • tinymce

All files are loaded from an index.js file which includes the application package.json file for all the dependencies. This file invokes the include function that ensures the dependencies are loaded in the correct order based on the hierarchy in the package.

⚠️ **GitHub.com Fallback** ⚠️