• Jump To … +
    Core.js EventTypes.js Kronicle.js Module.js ArrayDataSource.js Component.js Controller.js DataSource.js DataSources.js DataSourcesEvents.js View.js
  • Component.js

  • ¶
    require("babel/polyfill");
    import {Module} from '../Module.js';
  • ¶

    Kronicle.Component class

    depends: Kronicle.Module The Component class is used to create components which are added to Views or other components. A component is a small, reusable module implementation. The constructor takes an args object that contains the properties:

    • components - an array of components
    • template - a function that returns a string
    • name - the name of the component - will have Component appeded to it during initialization
    export class Component extends Module {
        constructor (args = {components: [], template: () => { return "" }, name: ""}) {
            this.template = args.template;
            this.modules = {
                components: {}
            };
            if(args.components) {
                this.addComponents(args.components);
            }
            super({name: args.name + 'Component'});
            
        }
  • ¶

    render method

    The render method passes any data avaialbe to a template and returns the rendered string Takes two arguments

    • err - an error that occured in the parent function
    • data - the data to be passed to template
        render (err, data) {
            if(!err) {
                return this.template(data);
            }
        }
  • ¶

    addComponents method

    This medthod add sub-components to the component, use this method to build a component with other components. Takes one argument:

    • components - an array of Kronicle Components
        addComponents(components) {
            var aryComponents = components;
            if(!(components instanceof Array)){
                aryComponents = [components];
            }
            this.components = components;
            for(let component of aryComponents){
                if(component.name) {
                    this.addComponentModule(component);
                } else {
                    throw new Error('Error: components must have a unique name');
                }
            }
        }
  • ¶

    addComponentModule method

    This method adds an individual sub-component to the component. Takes one argument:

    • component - a Kronicle Component
        addComponentModule(component) {
            this.modules.components[component.name] = component
        }
    }