aboutsummaryrefslogtreecommitdiffstats
path: root/docs/content/guide/scope.ngdoc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/guide/scope.ngdoc')
-rw-r--r--docs/content/guide/scope.ngdoc66
1 files changed, 33 insertions, 33 deletions
diff --git a/docs/content/guide/scope.ngdoc b/docs/content/guide/scope.ngdoc
index 489be82f..ab869f8e 100644
--- a/docs/content/guide/scope.ngdoc
+++ b/docs/content/guide/scope.ngdoc
@@ -11,10 +11,10 @@ watch {@link guide/expression expressions} and propagate events.
## Scope characteristics
- - Scopes provide APIs ({@link ng.$rootScope.Scope#methods_$watch $watch}) to observe
+ - Scopes provide APIs ({@link ng.$rootScope.Scope#$watch $watch}) to observe
model mutations.
- - Scopes provide APIs ({@link ng.$rootScope.Scope#methods_$apply $apply}) to
+ - Scopes provide APIs ({@link ng.$rootScope.Scope#$apply $apply}) to
propagate any model changes through the system into the view from outside of the "Angular
realm" (controllers, services, Angular event handlers).
@@ -32,8 +32,8 @@ watch {@link guide/expression expressions} and propagate events.
## Scope as Data-Model
Scope is the glue between application controller and the view. During the template {@link compiler
-linking} phase the {@link ng.$compileProvider#methods_directive directives} set up
-{@link ng.$rootScope.Scope#methods_$watch `$watch`} expressions on the scope. The
+linking} phase the {@link ng.$compileProvider#directive directives} set up
+{@link ng.$rootScope.Scope#$watch `$watch`} expressions on the scope. The
`$watch` allows the directives to be notified of property changes, which allows the directive to
render the updated value to the DOM.
@@ -187,8 +187,8 @@ To examine the scope in the debugger:
## Scope Events Propagation
Scopes can propagate events in similar fashion to DOM events. The event can be {@link
-ng.$rootScope.Scope#methods_$broadcast broadcasted} to the scope children or {@link
-ng.$rootScope.Scope#methods_$emit emitted} to scope parents.
+ng.$rootScope.Scope#$broadcast broadcasted} to the scope children or {@link
+ng.$rootScope.Scope#$emit emitted} to scope parents.
<example>
<file name="script.js">
@@ -230,14 +230,14 @@ more events.
When the browser calls into JavaScript the code executes outside the Angular execution context,
which means that Angular is unaware of model modifications. To properly process model
modifications the execution has to enter the Angular execution context using the {@link
-ng.$rootScope.Scope#methods_$apply `$apply`} method. Only model modifications which
+ng.$rootScope.Scope#$apply `$apply`} method. Only model modifications which
execute inside the `$apply` method will be properly accounted for by Angular. For example if a
directive listens on DOM events, such as {@link
ng.directive:ngClick `ng-click`} it must evaluate the
expression inside the `$apply` method.
After evaluating the expression, the `$apply` method performs a {@link
-ng.$rootScope.Scope#methods_$digest `$digest`}. In the $digest phase the scope examines all
+ng.$rootScope.Scope#$digest `$digest`}. In the $digest phase the scope examines all
of the `$watch` expressions and compares them with the previous value. This dirty checking is done
asynchronously. This means that assignment such as `$scope.username="angular"` will not
immediately cause a `$watch` to be notified, instead the `$watch` notification is delayed until
@@ -255,20 +255,20 @@ the `$digest` phase. This delay is desirable, since it coalesces multiple model
2. **Watcher registration**
During template linking directives register {@link
- ng.$rootScope.Scope#methods_$watch watches} on the scope. These watches will be
+ ng.$rootScope.Scope#$watch watches} on the scope. These watches will be
used to propagate model values to the DOM.
3. **Model mutation**
For mutations to be properly observed, you should make them only within the {@link
- ng.$rootScope.Scope#methods_$apply scope.$apply()}. (Angular APIs do this
+ ng.$rootScope.Scope#$apply scope.$apply()}. (Angular APIs do this
implicitly, so no extra `$apply` call is needed when doing synchronous work in controllers,
or asynchronous work with {@link ng.$http $http}, {@link ng.$timeout $timeout}
or {@link ng.$interval $interval} services.
4. **Mutation observation**
- At the end `$apply`, Angular performs a {@link ng.$rootScope.Scope#methods_$digest
+ At the end `$apply`, Angular performs a {@link ng.$rootScope.Scope#$digest
$digest} cycle on the root scope, which then propagates throughout all child scopes. During
the `$digest` cycle, all `$watch`ed expressions or functions are checked for model mutation
and if a mutation is detected, the `$watch` listener is called.
@@ -276,7 +276,7 @@ the `$digest` phase. This delay is desirable, since it coalesces multiple model
5. **Scope destruction**
When child scopes are no longer needed, it is the responsibility of the child scope creator
- to destroy them via {@link ng.$rootScope.Scope#methods_$destroy scope.$destroy()}
+ to destroy them via {@link ng.$rootScope.Scope#$destroy scope.$destroy()}
API. This will stop propagation of `$digest` calls into the child scope and allow for memory
used by the child scope models to be reclaimed by the garbage collector.
@@ -284,27 +284,27 @@ the `$digest` phase. This delay is desirable, since it coalesces multiple model
### Scopes and Directives
During the compilation phase, the {@link compiler compiler} matches {@link
-ng.$compileProvider#methods_directive directives} against the DOM template. The directives
+ng.$compileProvider#directive directives} against the DOM template. The directives
usually fall into one of two categories:
- - Observing {@link ng.$compileProvider#methods_directive directives}, such as
+ - Observing {@link ng.$compileProvider#directive directives}, such as
double-curly expressions `{{expression}}`, register listeners using the {@link
- ng.$rootScope.Scope#methods_$watch $watch()} method. This type of directive needs
+ ng.$rootScope.Scope#$watch $watch()} method. This type of directive needs
to be notified whenever the expression changes so that it can update the view.
- Listener directives, such as {@link ng.directive:ngClick
ng-click}, register a listener with the DOM. When the DOM listener fires, the directive
executes the associated expression and updates the view using the {@link
- ng.$rootScope.Scope#methods_$apply $apply()} method.
+ ng.$rootScope.Scope#$apply $apply()} method.
When an external event (such as a user action, timer or XHR) is received, the associated {@link
expression expression} must be applied to the scope through the {@link
-ng.$rootScope.Scope#methods_$apply $apply()} method so that all listeners are updated
+ng.$rootScope.Scope#$apply $apply()} method so that all listeners are updated
correctly.
### Directives that Create Scopes
-In most cases, {@link ng.$compileProvider#methods_directive directives} and scopes interact
+In most cases, {@link ng.$compileProvider#directive directives} and scopes interact
but do not create new instances of scope. However, some directives, such as {@link
ng.directive:ngController ng-controller} and {@link
ng.directive:ngRepeat ng-repeat}, create new child scopes
@@ -322,7 +322,7 @@ Scopes and controllers interact with each other in the following situations:
- Controllers define methods (behavior) that can mutate the model (properties on the scope).
- - Controllers may register {@link ng.$rootScope.Scope#methods_$watch watches} on
+ - Controllers may register {@link ng.$rootScope.Scope#$watch watches} on
the model. These watches execute immediately after the controller behavior executes.
See the {@link ng.directive:ngController ng-controller} for more
@@ -357,26 +357,26 @@ directive which is handling the event. An explicit call to $apply is needed only
implementing custom event callbacks, or when working with third-party library callbacks.
1. Enter Angular execution context by calling {@link guide/scope scope}`.`{@link
- ng.$rootScope.Scope#methods_$apply $apply}`(stimulusFn)`. Where `stimulusFn` is
+ ng.$rootScope.Scope#$apply $apply}`(stimulusFn)`. Where `stimulusFn` is
the work you wish to do in Angular execution context.
2. Angular executes the `stimulusFn()`, which typically modifies application state.
- 3. Angular enters the {@link ng.$rootScope.Scope#methods_$digest $digest} loop. The
+ 3. Angular enters the {@link ng.$rootScope.Scope#$digest $digest} loop. The
loop is made up of two smaller loops which process {@link
- ng.$rootScope.Scope#methods_$evalAsync $evalAsync} queue and the {@link
- ng.$rootScope.Scope#methods_$watch $watch} list. The {@link
- ng.$rootScope.Scope#methods_$digest $digest} loop keeps iterating until the model
- stabilizes, which means that the {@link ng.$rootScope.Scope#methods_$evalAsync
- $evalAsync} queue is empty and the {@link ng.$rootScope.Scope#methods_$watch
+ ng.$rootScope.Scope#$evalAsync $evalAsync} queue and the {@link
+ ng.$rootScope.Scope#$watch $watch} list. The {@link
+ ng.$rootScope.Scope#$digest $digest} loop keeps iterating until the model
+ stabilizes, which means that the {@link ng.$rootScope.Scope#$evalAsync
+ $evalAsync} queue is empty and the {@link ng.$rootScope.Scope#$watch
$watch} list does not detect any changes.
- 4. The {@link ng.$rootScope.Scope#methods_$evalAsync $evalAsync} queue is used to
+ 4. The {@link ng.$rootScope.Scope#$evalAsync $evalAsync} queue is used to
schedule work which needs to occur outside of current stack frame, but before the browser's
view render. This is usually done with `setTimeout(0)`, but the `setTimeout(0)` approach
suffers from slowness and may cause view flickering since the browser renders the view after
each event.
- 5. The {@link ng.$rootScope.Scope#methods_$watch $watch} list is a set of expressions
+ 5. The {@link ng.$rootScope.Scope#$watch $watch} list is a set of expressions
which may have changed since last iteration. If a change is detected then the `$watch`
function is called which typically updates the DOM with the new value.
- 6. Once the Angular {@link ng.$rootScope.Scope#methods_$digest $digest} loop finishes
+ 6. Once the Angular {@link ng.$rootScope.Scope#$digest $digest} loop finishes
the execution leaves the Angular and JavaScript context. This is followed by the browser
re-rendering the DOM to reflect any changes.
@@ -389,17 +389,17 @@ user enters text into the text field.
ng.directive:input input} {@link guide/directive
directive} set up a `keydown` listener on the `<input>` control.
2. the {@link ng.$interpolate &#123;&#123;name&#125;&#125; } interpolation
- sets up a {@link ng.$rootScope.Scope#methods_$watch $watch} to be notified of
+ sets up a {@link ng.$rootScope.Scope#$watch $watch} to be notified of
`name` changes.
2. During the runtime phase:
1. Pressing an '`X`' key causes the browser to emit a `keydown` event on the input control.
2. The {@link ng.directive:input input} directive
captures the change to the input's value and calls {@link
- ng.$rootScope.Scope#methods_$apply $apply}`("name = 'X';")` to update the
+ ng.$rootScope.Scope#$apply $apply}`("name = 'X';")` to update the
application model inside the Angular execution context.
3. Angular applies the `name = 'X';` to the model.
- 4. The {@link ng.$rootScope.Scope#methods_$digest $digest} loop begins
- 5. The {@link ng.$rootScope.Scope#methods_$watch $watch} list detects a change
+ 4. The {@link ng.$rootScope.Scope#$digest $digest} loop begins
+ 5. The {@link ng.$rootScope.Scope#$watch $watch} list detects a change
on the `name` property and notifies the {@link ng.$interpolate
&#123;&#123;name&#125;&#125; } interpolation, which in turn updates the DOM.
6. Angular exits the execution context, which in turn exits the `keydown` event and with it