This repository contains all the javascript and css needed for the Materia Server and some assets needed for the Materia Widget Development Kit.
Visit the Materia Documentation for more information.
- Each module is in it's own file, in a directory matching the type of module it is
- use dashes to seperate words in file names
- tests use the same name of the module they are testing (
module.js
andmodule.test.js
) - file names start with the type of module it is:
filter-
,dir-
,ctrl-
,srv-
- reusable code that has a wider scope then a single module is placed in a service module
By convention, all controllers are written in a certain order from top to bottom:
- Variables and constants used in the controller
- Function defenitions, do define directly on $scope
- Expose variables and methods to $scope
- Initialize state
const app = angular.module('materia')
app.controller('peopleController', function($scope) {
// define vars and consts
let _people = []
// define functions
const _sortNames = (a, b) => `${a.first} ${a.last}`.localeCompare(`${b.first} ${b.last}`)
const getPeople () => {
// load users from some place
_people.sort(_sortNames)
$scope.people = _people
}
// Expose on scope
$scope.people = []
$scope.getPeople = getPeople
// initialize
getPeople()
})