This is a style guide for structuring AngularJS applications using a component-based architecture. It provides a set of conventions for organizing code into self-contained modules, each encapsulating its own logic, templates, and routing. The guide promotes a modular application structure built from root, component, common, and feature modules to improve maintainability and reusability.
The guide establishes a one-way data flow pattern where parent components pass data to children through bindings, and children communicate changes back up through events. It distinguishes between stateful components that fetch data from services and stateless components that receive data through input bindings. Business logic and API calls are encapsulated in injectable service classes, separate from component controllers.
For DOM manipulation, the guide restricts directives to attribute-based decoration for event handling and element manipulation, avoiding templates or controllers. It also recommends co-locating component-specific stylesheets within module definitions. The guide covers component-based routing with resolved data mapped directly to component bindings for view initialization.