# Developer Guide: Angular Scopes

Work in Progress This page is currently being revised. It might be incomplete or contain inaccuracies.

An angular scope is a JavaScript type defined by angular. Instances of this type are objects that serve as the context within which all model and controller methods live and get evaluated.

Angular links scope objects to specific points in a compiled (processed) template. This linkage provides the contexts in which angular creates data-bindings between the model and the view. You can think of angular scope objects as the medium through which the model, view, and controller communicate.

In addition to providing the context in which data is evaluated, angular scope objects watch for model changes. The scope objects also notify all components interested in any model changes (for example, functions registered through `$watch`, bindings created by `ng:bind`, or HTML input elements).

Angular scope objects are responsible for:

- Gluing the model, controller and view template together.
- Providing the mechanism to watch for model changes (`api/angular.scope.$watch`).
- Notifying interested components when the model changes (`api/angular.scope.$eval`).
- Providing the context in which all controller functions and angular expressions are evaluated.

### Related Topics

- Understanding Scopes
- Working With Scopes
- Applying Controllers to Scopes
- Updating Scopes

### Related API

- `Angular Scope API`