# angular/angular.js

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/angular-angular-js).**

58,615 stars · 27,111 forks · JavaScript · mit · archived

## Links

- GitHub: https://github.com/angular/angular.js
- Homepage: https://angularjs.org
- awesome-repositories: https://awesome-repositories.com/repository/angular-angular-js.md

## Description

AngularJS is a structural framework for building dynamic web applications by extending standard HTML with custom tags and attributes. It operates as a client-side template engine that transforms declarative markup into interactive components, organizing application logic through a model-view-controller pattern. By utilizing a centralized dependency injection container, the framework manages the lifecycle of services and components to ensure modularity and maintainable architecture.

The framework is defined by its two-way data binding mechanism, which automatically synchronizes data models with the user interface. It achieves this through dirty-checking, where the system periodically compares model snapshots to propagate changes between the view and the underlying data. This process is supported by hierarchical scope inheritance, allowing nested components to access and modify parent data models, and expression-based evaluation that enables dynamic logic directly within the document markup.

Beyond its core rendering and binding capabilities, the project provides a comprehensive suite of tools for application development. This includes a service-oriented architecture for encapsulating business logic, built-in data transformation filters, and extensive support for automated testing, covering both isolated unit tests and end-to-end browser workflows. The framework also offers granular control over document elements, including conditional rendering, event handling, and input validation.

## Tags

### Data & Databases

- [Two-Way Data Binding](https://awesome-repositories.com/f/data-databases/data-synchronization/two-way-data-binding.md) — Maintains consistency between data models and UI views by propagating changes in both directions automatically. ([source](https://cdn.jsdelivr.net/gh/angular/angular.js@master/README.md))

### Software Engineering & Architecture

- [Service Injection Patterns](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/dependency-injection/systems/service-injection-patterns.md) — Injects reusable services and factories into components to streamline dependency management and shared logic. ([source](https://docs.angularjs.org/api))
- [Model-View-Controller Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/model-view-controller-frameworks.md) — Organizes application logic by enforcing a clean separation between data models, user interface views, and controller layers.
- [MV* Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/application-layer-architectures/application-architecture-patterns/mv-frameworks.md) — Structures application logic by automating the connection between data models and user interface components. ([source](https://cdn.jsdelivr.net/gh/angular/angular.js@master/README.md))
- [Root Initialization Utilities](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/app-bootstrap-and-identity/root-initialization-utilities.md) — Initializes applications by designating a root element on the page to manage the framework lifecycle. ([source](https://docs.angularjs.org/api/ng/directive))
- [Software Architecture](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture.md) — Employs dependency injection and scope-based data binding to manage complex component interactions and application state. ([source](https://docs.angularjs.org/guide))
- [Hierarchical Scopes](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/application-layer-architectures/state-management-architectures/scope-and-hierarchy-management/hierarchical-scopes.md) — Facilitates data access across component boundaries by nesting state objects into a tree structure that allows children to inherit parent models.
- [Dependency Injection](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/dependency-injection.md) — Decouples components by injecting required services at runtime rather than relying on hard-coded dependencies.

### User Interface & Experience

- [HTML Directive Extensions](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/composition-slots/html-directive-extensions.md) — Encapsulates reusable component logic and behavior within custom HTML markup extensions. ([source](https://cdn.jsdelivr.net/gh/angular/angular.js@master/README.md))
- [Two-Way](https://awesome-repositories.com/f/user-interface-experience/data-binding/two-way.md) — Synchronizes data models and the user interface automatically so that changes in either layer reflect in the other.
- [Client-Side Template Rendering](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/client-side-template-rendering.md) — Updates the browser view dynamically by binding application data directly to HTML templates.
- [Dirty Checking Mechanisms](https://awesome-repositories.com/f/user-interface-experience/data-binding/dirty-checking-mechanisms.md) — Detects data changes by periodically comparing current values against cached snapshots.
- [Event Listeners](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/event-handling/event-listeners.md) — Attaches custom logic to standard DOM events through declarative directives. ([source](https://docs.angularjs.org/api/ng/directive))
- [Expression Evaluators](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/control-flow-directives/expression-evaluators.md) — Executes dynamic logic within templates to perform real-time data transformations.
- [Conditional Rendering Directives](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/component-libraries/ui-framework-components/conditional-rendering-directives.md) — Controls the visibility of interface elements by evaluating expressions to determine if they should be rendered. ([source](https://docs.angularjs.org/api/ng/directive/ngIf))
- [Attribute Binding Directives](https://awesome-repositories.com/f/user-interface-experience/data-binding/attribute-binding-directives.md) — Binds element attributes directly to dynamic expressions, allowing state-driven control over properties like checkbox selection without manual DOM manipulation. ([source](https://docs.angularjs.org/api/ng/directive/ngChecked))

### Web Development

- [Directive-Based Template Compilers](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/rendering-and-layout-architectures/directive-based-template-compilers.md) — Converts custom markup into interactive components by parsing the document tree during the application bootstrap phase.
- [Directives](https://awesome-repositories.com/f/web-development/frontend-development-tools/frontend-frameworks/directives.md) — Extends standard HTML with custom attributes and tags to define reusable interface behaviors.
- [Property Bindings](https://awesome-repositories.com/f/web-development/frontend-development-tools/frontend-frameworks/directives/property-bindings.md) — Links component state to DOM element properties dynamically using expression evaluation. ([source](https://docs.angularjs.org/api/ng/directive))
- [Client-Side Template Engines](https://awesome-repositories.com/f/web-development/frontend-development-tools/frontend-frameworks/rendering-engines/client-side-template-engines.md) — Processes dynamic data into live document markup using expressions and filters directly in the browser.

### DevOps & Infrastructure

- [Dependency Injection Systems](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/dependency-injection-systems.md) — Manages object lifecycles and component dependencies through a centralized injection system to improve modularity.
- [Service Containers](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/dependency-injection-systems/service-containers.md) — Groups shared business logic and external services into singleton containers to simplify dependency resolution across the entire application lifecycle.
- [Deferred Resource Loading](https://awesome-repositories.com/f/devops-infrastructure/infrastructure/distributed-data-platforms/deferred-resource-loading.md) — Defers resource fetching by binding element sources to expressions that resolve only after the application template has been fully processed. ([source](https://docs.angularjs.org/api/ng/directive))

### Testing & Quality Assurance

- [End-to-End Testing Suites](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/end-to-end-testing-suites.md) — Automates browser actions to simulate and verify full user workflows. ([source](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md))
- [Unit](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/unit.md) — Validates individual code units and logic components in isolation to ensure functional correctness. ([source](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md))
- [Test Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks.md) — Enables comprehensive verification of application logic through isolated component unit tests and simulated browser-based end-to-end workflows.
- [UI](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/ui.md) — Provides specialized testing utilities to validate user interface behavior and state consistency during simulated browser interactions. ([source](https://docs.angularjs.org/guide))

### Part of an Awesome List

- [Sponsored Projects](https://awesome-repositories.com/f/awesome-lists/devtools/sponsored-projects.md) — Supported by corporate sponsorship from a major technology company.
- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — HTML enhanced for web apps. (deprecated)
