Skip to content

Instantly share code, notes, and snippets.

@faridiot
Last active July 10, 2016 01:23
Show Gist options
  • Save faridiot/dca30610ec17ca999adf43938bad8c47 to your computer and use it in GitHub Desktop.
Save faridiot/dca30610ec17ca999adf43938bad8c47 to your computer and use it in GitHub Desktop.

Compiler

Angular Service which converts a Template into a ProtoView. The compilation process involves looking for Directives in the Template by matching the directive selectors.

Component

A directive which has associated Shadow DOM. The Shadow DOM will contain a private View. Components can configure application Injector.

Change Detection

A process by which Angular detects changes so that they can be reflected to the View.

ComponentInjector

An component level injector which can assemble services through Dependency Injection.

Decorator

A directive which can add behavior to DOM Element. Any number of Decorators can be on a DOM element. Decorators can not introduce new references, Views or configure application injector.

Directive

A generic concept by which Angular attaches behavior to HTML. There are three kinds: Component, Decorator and Template.

ElementInjector

A specialized injector which knows how to instantiate Directives. Unlike ComponentInjector the ElementInjector understands the DOM structure and can inject ancestors, parents, children, and descendants directives.

Model

A generic concept of the source of data binding. A model can be a Directive, Service, or any other object. An object becomes a Model if it is used in a Template for data-binding.

Proto*

Proto* (short for prototype) prefix is a set of factories which are efficient at creating the said type. (ie ProtoView for View)

ProtoView

Is an internal structure which is efficient for creating View instances.

ProtoViewPort

Is an internal structure which is efficient for creating ViewPort instances.

Service

Any class which is available from application Injector.

Template (directive)

A Directive which controls the insertion of child Views into ViewPort. Only one Template directive per element.

Template (html)

Input to the HTML Compiler which converts the template into a set of ProtoViews.

View

Is a block of DOM elements which can not change structurally. (Views can only change properties on the DOM elements). Views can have ViewPorts where child Views can be added. Adding / removing Views is the only way in Angular to change the DOM structurally. An Angular application is a tree of Views.

ViewPort

Is a location where other Views can be attached.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment