From d4312b731a6d795f1afef83cccd4ec1a5a11e0e4 Mon Sep 17 00:00:00 2001
From: Matt Rohrer
Date: Wed, 26 Sep 2012 15:30:55 +0200
Subject: docs(guide): minor grammar fixes
---
docs/content/cookbook/buzz.ngdoc | 2 +-
docs/content/cookbook/deeplinking.ngdoc | 2 +-
docs/content/cookbook/form.ngdoc | 2 +-
docs/content/cookbook/helloworld.ngdoc | 4 +-
docs/content/cookbook/index.ngdoc | 6 +--
docs/content/cookbook/mvc.ngdoc | 4 +-
docs/content/guide/compiler.ngdoc | 18 +++----
docs/content/guide/concepts.ngdoc | 56 +++++++++----------
docs/content/guide/dev_guide.e2e-testing.ngdoc | 4 +-
docs/content/guide/dev_guide.mvc.ngdoc | 4 +-
.../dev_guide.mvc.understanding_controller.ngdoc | 40 +++++++++-----
.../guide/dev_guide.mvc.understanding_model.ngdoc | 14 ++---
.../guide/dev_guide.mvc.understanding_view.ngdoc | 6 +--
.../guide/dev_guide.services.$location.ngdoc | 9 ++--
.../dev_guide.services.creating_services.ngdoc | 8 +--
.../dev_guide.services.managing_dependencies.ngdoc | 4 +-
docs/content/guide/dev_guide.services.ngdoc | 7 ++-
...dev_guide.services.understanding_services.ngdoc | 6 +--
.../guide/dev_guide.templates.databinding.ngdoc | 6 +--
docs/content/guide/dev_guide.templates.ngdoc | 10 ++--
docs/content/guide/dev_guide.unit-testing.ngdoc | 63 +++++++++++++---------
docs/content/guide/di.ngdoc | 9 ++--
docs/content/guide/directive.ngdoc | 11 ++--
docs/content/guide/expression.ngdoc | 19 ++++---
docs/content/guide/forms.ngdoc | 14 ++---
docs/content/guide/ie.ngdoc | 4 +-
docs/content/guide/introduction.ngdoc | 16 +++---
docs/content/guide/module.ngdoc | 6 +--
docs/content/guide/overview.ngdoc | 10 ++--
docs/content/guide/scope.ngdoc | 8 +--
docs/content/tutorial/step_01.ngdoc | 4 +-
docs/content/tutorial/step_07.ngdoc | 2 +-
32 files changed, 201 insertions(+), 177 deletions(-)
diff --git a/docs/content/cookbook/buzz.ngdoc b/docs/content/cookbook/buzz.ngdoc
index 7277f957..baed4646 100644
--- a/docs/content/cookbook/buzz.ngdoc
+++ b/docs/content/cookbook/buzz.ngdoc
@@ -3,7 +3,7 @@
@description
External resources are URLs that provide JSON data, which are then rendered with the help of
-templates. angular has a resource factory that can be used to give names to the URLs and then
+templates. Angular has a resource factory that can be used to give names to the URLs and then
attach behavior to them. For example you can use the
{@link http://code.google.com/apis/buzz/v1/getting_started.html#background-operations| Google Buzz
API}
diff --git a/docs/content/cookbook/deeplinking.ngdoc b/docs/content/cookbook/deeplinking.ngdoc
index f5509621..2e22360e 100644
--- a/docs/content/cookbook/deeplinking.ngdoc
+++ b/docs/content/cookbook/deeplinking.ngdoc
@@ -5,7 +5,7 @@
Deep linking allows you to encode the state of the application in the URL so that it can be
bookmarked and the application can be restored from the URL to the same state.
-While angular does not force you to deal with bookmarks in any particular way, it has services
+While Angular does not force you to deal with bookmarks in any particular way, it has services
which make the common case described here very easy to implement.
# Assumptions
diff --git a/docs/content/cookbook/form.ngdoc b/docs/content/cookbook/form.ngdoc
index 3b85b80b..aaa49d2f 100644
--- a/docs/content/cookbook/form.ngdoc
+++ b/docs/content/cookbook/form.ngdoc
@@ -2,7 +2,7 @@
@name Cookbook: Form
@description
-A web application's main purpose is to present and gather data. For this reason angular strives
+A web application's main purpose is to present and gather data. For this reason Angular strives
to make both of these operations trivial. This example shows off how you can build a simple form to
allow a user to enter data.
diff --git a/docs/content/cookbook/helloworld.ngdoc b/docs/content/cookbook/helloworld.ngdoc
index 786511e9..05748231 100644
--- a/docs/content/cookbook/helloworld.ngdoc
+++ b/docs/content/cookbook/helloworld.ngdoc
@@ -28,10 +28,10 @@
Take a look through the source and note:
-* The script tag that {@link guide/bootstrap bootstraps} the angular environment.
+* The script tag that {@link guide/bootstrap bootstraps} the Angular environment.
* The text {@link api/ng.directive:input input form control} which is
bound to the greeting name text.
-* No need for listener registration and event firing on change events.
+* There is no need for listener registration and event firing on change events.
* The implicit presence of the `name` variable which is in the root {@link api/ng.$rootScope.Scope scope}.
* The double curly brace `{{markup}}`, which binds the name variable to the greeting text.
* The concept of {@link guide/dev_guide.templates.databinding data binding}, which reflects any
diff --git a/docs/content/cookbook/index.ngdoc b/docs/content/cookbook/index.ngdoc
index 45ba2123..4fe3eb4d 100644
--- a/docs/content/cookbook/index.ngdoc
+++ b/docs/content/cookbook/index.ngdoc
@@ -2,7 +2,7 @@
@name Cookbook
@description
-Welcome to the angular cookbook. Here we will show you typical uses of angular by example.
+Welcome to the Angular cookbook. Here we will show you typical uses of Angular by example.
# Hello World
@@ -45,7 +45,7 @@ allowing you to send links to specific screens in your app.
# Services
{@link api/ng Services}: Services are long lived objects in your applications that are
-available across controllers. A collection of useful services are pre-bundled with angular but you
+available across controllers. A collection of useful services are pre-bundled with Angular but you
will likely add your own. Services are initialized using dependency injection, which resolves the
order of initialization. This safeguards you from the perils of global state (a common way to
implement long lived objects).
@@ -55,4 +55,4 @@ implement long lived objects).
{@link buzz Resources}: Web applications must be able to communicate with the external
services to get and update data. Resources are the abstractions of external URLs which are
-specially tailored to angular data binding.
+specially tailored to Angular data binding.
diff --git a/docs/content/cookbook/mvc.ngdoc b/docs/content/cookbook/mvc.ngdoc
index c362174c..ff067f61 100644
--- a/docs/content/cookbook/mvc.ngdoc
+++ b/docs/content/cookbook/mvc.ngdoc
@@ -2,7 +2,7 @@
@name Cookbook: MVC
@description
-MVC allows for a clean an testable separation between the behavior (controller) and the view
+MVC allows for a clean and testable separation between the behavior (controller) and the view
(HTML template). A Controller is just a JavaScript class which is grafted onto the scope of the
view. This makes it very easy for the controller and the view to share the model.
@@ -115,7 +115,7 @@ view.
# Things to notice
* The controller is defined in JavaScript and has no reference to the rendering logic.
-* The controller is instantiated by
@@ -59,7 +59,7 @@ api/ng.directive:ngBind `ng-bind`} directive.-Directive is just a function which executes when the compiler encounters it in the DOM. See {@link +A directive is just a function which executes when the compiler encounters it in the DOM. See {@link api/ng.$compileProvider#directive directive API} for in-depth documentation on how to write directives. @@ -107,9 +107,9 @@ Here is a directive which makes any element draggable. Notice the `draggable` at -The presence of `draggable` attribute on any element gives the element new behavior. The beauty of +The presence of the `draggable` attribute on any element gives the element new behavior. The beauty of this approach is that we have taught the browser a new trick. We have extended the vocabulary of -what the browser understands in a way, which is natural to anyone who is familiar with HTML +what the browser understands in a way which is natural to anyone who is familiar with HTML principles. @@ -122,7 +122,7 @@ an element.
This means that any changes to the data need to be re-merged with the template and then
-`innerHTML`ed into the DOM. Some of the issues are: reading user input and merging it with data,
+`innerHTML`ed into the DOM. Some of the issues with this approach are: reading user input and merging it with data,
clobbering user input by overwriting it, managing the whole update process, and lack of behavior
expressiveness.
diff --git a/docs/content/guide/concepts.ngdoc b/docs/content/guide/concepts.ngdoc
index 3ad59f69..a087c80a 100644
--- a/docs/content/guide/concepts.ngdoc
+++ b/docs/content/guide/concepts.ngdoc
@@ -26,20 +26,20 @@ This is how we get the ball rolling (refer to the diagram and example below):
- 1. Browser loads the HTML and parses it into a DOM
- 2. Browser loads `angular.js` script
+ 1. The browser loads the HTML and parses it into a DOM
+ 2. The browser loads `angular.js` script
3. Angular waits for `DOMContentLoaded` event
4. Angular looks for {@link api/ng.directive:ngApp ng-app}
- {@link guide/directive directive}, which designates application boundary
- 5. {@link guide/module Module} specified in {@link
+ {@link guide/directive directive}, which designates the application boundary
+ 5. The {@link guide/module Module} specified in {@link
api/ng.directive:ngApp ng-app} (if any) is used to configure
the {@link api/AUTO.$injector $injector}
- 6. {@link api/AUTO.$injector $injector} is used to create the {@link
+ 6. The {@link api/AUTO.$injector $injector} is used to create the {@link
api/ng.$compile $compile} service as well as {@link
api/ng.$rootScope $rootScope}
- 7. {@link api/ng.$compile $compile} service is used to compile the DOM and link
+ 7. The {@link api/ng.$compile $compile} service is used to compile the DOM and link
it with {@link api/ng.$rootScope $rootScope}
- 8. {@link api/ng.directive:ngInit ng-init} {@link
+ 8. The {@link api/ng.directive:ngInit ng-init} {@link
guide/directive directive} assigns `World` to the `name` property on the {@link guide/scope
scope}
9. The `{{name}}` {@link api/ng.$interpolate interpolates} the expression to
@@ -59,21 +59,21 @@ This is how we get the ball rolling (refer to the diagram and example below):
-The diagram and the example below describe how Angular interacts with browser's event loop.
+The diagram and the example below describe how Angular interacts with the browser's event loop.
- 1. Browsers event-loop waits for an event to arrive. Event is a user interactions, timer event,
+ 1. The browser's event-loop waits for an event to arrive. An event is a user interactions, timer event,
or network event (response from a server).
- 2. The events callback gets executed. This enters the JavaScript context. The callback can
+ 2. The event's callback gets executed. This enters the JavaScript context. The callback can
modify the DOM structure.
- 3. Once the callback finishes execution, the browser leaves the JavaScript context and
+ 3. Once the callback executes, the browser leaves the JavaScript context and
re-renders the view based on DOM changes.
-Angular modifies the normal JavaScript flow by providing it's own event processing loop. This
+Angular modifies the normal JavaScript flow by providing its own event processing loop. This
splits the JavaScript into classical and Angular execution context. Only operations which are
-applied in Angular execution context will benefit from angular data-binding, exception handling,
-property watching, etc... Use $apply() to enter Angular execution context from JavaScript. Keep in
-mind that in most places (controllers, services) the $apply has already been called for you by the
-directive which is handling the event. The need to call $apply is reserved only when
+applied in Angular execution context will benefit from Angular data-binding, exception handling,
+property watching, etc... You can also use $apply() to enter Angular execution context from JavaScript. Keep in
+mind that in most places (controllers, services) $apply has already been called for you by the
+directive which is handling the event. An explicit call to $apply is needed only when
implementing custom event callbacks, or when working with a third-party library callbacks.
1. Enter Angular execution context by calling {@link guide/scope scope}`.`{@link
@@ -89,14 +89,14 @@ implementing custom event callbacks, or when working with a third-party library
$evalAsync} queue is empty and the {@link api/ng.$rootScope.Scope#$watch
$watch} list does not detect any changes.
4. The {@link api/ng.$rootScope.Scope#$evalAsync $evalAsync} queue is used to
- schedule work which needs to occur outside of current stack frame, but before the browser
+ 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 api/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 Angular {@link api/ng.$rootScope.Scope#$digest $digest} loop finishes
+ 6. Once the Angular {@link api/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.
@@ -188,7 +188,7 @@ a diagram depicting the scope boundaries.
-Controller is the code behind the view. Its job is to construct the model and publish it to the
+A controller is the code behind the view. Its job is to construct the model and publish it to the
view along with callback methods. The view is a projection of the scope onto the template (the
HTML). The scope is the glue which marshals the model to the view and forwards the events to the
controller.
@@ -233,7 +233,7 @@ The separation of the controller and the view is important because:
The model is the data which is used merged with the template to produce the view. To be able to
-render the model into the view, the model has to be referenceable from the scope. Unlike many
+render the model into the view, the model has to be able to be referenced from the scope. Unlike many
other frameworks Angular makes no restrictions or requirements an the model. There are no classes
to inherit from or special accessor methods for accessing or changing the model. The model can be
primitive, object hash, or a full object Type. In short the model is a plain JavaScript object.
@@ -250,7 +250,7 @@ primitive, object hash, or a full object Type. In short the model is a plain Jav
The view is what the users sees. The view begins its life as a template, it is merged with the
model and finally rendered into the browser DOM. Angular takes a very different approach to
-rendering the view, to most other templating systems.
+rendering the view, compared to most other templating systems.
* **Others** - Most templating systems begin as an HTML string with special templating markup.
Often the template markup breaks the HTML syntax which means that the template can not be
@@ -261,9 +261,9 @@ rendering the view, to most other templating systems.
is the granularity of the DOM updates. The key here is that the templating system manipulates
strings.
* **Angular** - Angular is different, since its templating system works on DOM objects not on
- strings. The template is still written in HTML string, but it is HTML (not HTML with
- template sprinkled in.) The browser parses the HTML into DOM, and the DOM becomes the input to
- the template engine know as the {@link api/ng.$compile compiler}. The compiler
+ strings. The template is still written in an HTML string, but it is HTML (not HTML with
+ template sprinkled in.) The browser parses the HTML into the DOM, and the DOM becomes the input to
+ the template engine known as the {@link api/ng.$compile compiler}. The compiler
looks for {@link guide/directive directives} which in turn set up {@link
api/ng.$rootScope.Scope#$watch watches} on the model. The result is a
continuously updating view which does not need template model re-merging. Your model becomes
@@ -291,7 +291,7 @@ rendering the view, to most other templating systems.
# Directives
-A directive is a behavior or DOM transformation which is triggered by a presence of an attribute,
+A directive is a behavior or DOM transformation which is triggered by the presence of a custom attribute,
element name, or a class name. A directive allows you to extend the HTML vocabulary in a
declarative fashion. Following is an example which enables data-binding for the `contenteditable`
in HTML.
@@ -337,7 +337,7 @@ in HTML.
# Filters
-{@link api/ng.$filter Filters} perform data transformation roles. Typically
+{@link api/ng.$filter Filters} perform data transformation. Typically
they are used in conjunction with the locale to format the data in locale specific output.
They follow the spirit of UNIX filters and use similar syntax `|` (pipe).
@@ -358,7 +358,7 @@ They follow the spirit of UNIX filters and use similar syntax `|` (pipe).
-An {@link api/AUTO.$injector injector} is a service locator. There is a single
+The {@link api/AUTO.$injector injector} is a service locator. There is a single
{@link api/AUTO.$injector injector} per Angular {@link
api/ng.directive:ngApp application}. The {@link
api/AUTO.$injector injector} provides a way to look up an object instance by its
@@ -438,7 +438,7 @@ dependencies, look for dependencies, or even get a reference to the injector.
@@ -197,7 +211,7 @@ Inheritance works between controllers in the same way as it does with models. So
examples, all of the models could be replaced with controller methods that return string values.
Note: Standard prototypical inheritance between two controllers doesn't work as one might expect,
-because as we mentioned earlier, controllers are not instantiated directly by angular, but rather
+because as we mentioned earlier, controllers are not instantiated directly by Angular, but rather
are applied to the scope object.
@@ -241,8 +255,8 @@ describe('myController function', function() {
-If you need to test a nested controller one needs to create the same scope hierarchy
-in your test as exist in the DOM.
+If you need to test a nested controller you need to create the same scope hierarchy
+in your test that exists in the DOM.
describe('state', function() {
diff --git a/docs/content/guide/dev_guide.mvc.understanding_model.ngdoc b/docs/content/guide/dev_guide.mvc.understanding_model.ngdoc
index 80e4139b..2972d3e1 100644
--- a/docs/content/guide/dev_guide.mvc.understanding_model.ngdoc
+++ b/docs/content/guide/dev_guide.mvc.understanding_model.ngdoc
@@ -2,16 +2,16 @@
@name Developer Guide: About MVC in Angular: Understanding the Model Component
@description
-Depending on the context of the discussion in angular documentation, the term _model_ can refer to
+Depending on the context of the discussion in the Angular documentation, the term _model_ can refer to
either a single object representing one entity (for example, a model called "phones" with its value
being an array of phones) or the entire data model for the application (all entities).
-In angular, a model is any data that is reachable as a property of an angular {@link
+In Angular, a model is any data that is reachable as a property of an angular {@link
scope Scope} object. The name of the property is the model identifier and the value is
any JavaScript object (including arrays and primitives).
-The only requirement for a JavaScript object to be a model in angular is that the object must be
-referenced by an angular scope as a property of that scope object. This property reference can be
+The only requirement for a JavaScript object to be a model in Angular is that the object must be
+referenced by an Angular scope as a property of that scope object. This property reference can be
created explicitly or implicitly.
You can create models by explicitly creating scope properties referencing JavaScript objects in the
@@ -52,11 +52,11 @@ cloud".
The code above creates one child scope for each item in the "phones" array and creates a "phone"
object (model) on each of these scopes with its value set to the value of "phone" in the array.
-In angular, a JavaScript object stops being a model when:
+In Angular, a JavaScript object stops being a model when:
-* No angular scope contains a property that references the object.
+* No Angular scope contains a property that references the object.
-* All angular scopes that contain a property referencing the object become stale and eligible for
+* All Angular scopes that contain a property referencing the object become stale and eligible for
garbage collection.
The following illustration shows a simple data model created implicitly from a simple template:
diff --git a/docs/content/guide/dev_guide.mvc.understanding_view.ngdoc b/docs/content/guide/dev_guide.mvc.understanding_view.ngdoc
index 71ee81b0..567437bd 100644
--- a/docs/content/guide/dev_guide.mvc.understanding_view.ngdoc
+++ b/docs/content/guide/dev_guide.mvc.understanding_view.ngdoc
@@ -2,14 +2,14 @@
@name Developer Guide: About MVC in Angular: Understanding the View Component
@description
-In angular, the view is the DOM loaded and rendered in the browser, after angular has transformed
+In Angular, the view is the DOM loaded and rendered in the browser, after Angular has transformed
the DOM based on information in the template, controller and model.
-In the angular implementation of MVC, the view has knowledge of both the model and the controller.
+In the Angular implementation of MVC, the view has knowledge of both the model and the controller.
The view knows about the model where two-way data-binding occurs. The view has knowledge of the
-controller through angular directives, such as {@link api/ng.directive:ngController
+controller through Angular directives, such as {@link api/ng.directive:ngController
ngController} and {@link api/ng.directive:ngView ngView}, and through bindings of this form:
`{{someControllerFunction()}}`. In these ways, the view can call functions in an associated
controller function.
diff --git a/docs/content/guide/dev_guide.services.$location.ngdoc b/docs/content/guide/dev_guide.services.$location.ngdoc
index 8270b898..81fd0021 100644
--- a/docs/content/guide/dev_guide.services.$location.ngdoc
+++ b/docs/content/guide/dev_guide.services.$location.ngdoc
@@ -73,10 +73,9 @@ Any time your application needs to react to a change in the current URL or if yo
the current URL in the browser.
## What does it not do?
-Does not cause a full page reload when the browser URL is changed. To reload the page after
+It does not cause a full page reload when the browser URL is changed. To reload the page after
changing the URL, use the lower-level API, `$window.location.href`.
-
# General overview of the API
The `$location` service can behave differently, depending on the configuration that was provided to
@@ -133,12 +132,12 @@ current URL without creating a new browser history record you can call:
// or you can chain these as: $location.path('/someNewPath').replace();
-Note that the setters don't update `window.location` immediately. Instead, `$location` service is
+Note that the setters don't update `window.location` immediately. Instead, the `$location` service is
aware of the {@link api/ng.$rootScope.Scope scope} life-cycle and coalesces multiple `$location`
mutations into one "commit" to the `window.location` object during the scope `$digest` phase. Since
multiple changes to the $location's state will be pushed to the browser as a single change, it's
enough to call the `replace()` method just once to make the entire "commit" a replace operation
-rather than addition to the browser history. Once the browser is updated, the $location service
+rather than an addition to the browser history. Once the browser is updated, the $location service
resets the flag set by `replace()` method and future mutations will create new history records,
unless `replace()` is called again.
@@ -304,7 +303,7 @@ history API or not; the `$location` service makes this transparent to you.
### Html link rewriting
-When you use the history API mode, you will need different links in different browser, but all you
+When you use HTML5 history API mode, you will need different links in different browsers, but all you
have to do is specify regular URL links, such as: `link`
When a user clicks on this link,
diff --git a/docs/content/guide/dev_guide.services.creating_services.ngdoc b/docs/content/guide/dev_guide.services.creating_services.ngdoc
index 355d3243..d5adc4ba 100644
--- a/docs/content/guide/dev_guide.services.creating_services.ngdoc
+++ b/docs/content/guide/dev_guide.services.creating_services.ngdoc
@@ -48,9 +48,9 @@ create this instance when called.
# Dependencies
-Services can not only be depended upon, but also have its own dependencies. These can be specified
-as arguments of the factory function. {@link di Read more} about the DI
-in Angular and the use of array notation and $inject property to make DI annotation
+Services can not only be depended upon, but can also have their own dependencies. These can be specified
+as arguments of the factory function. {@link di Read more} about dependency injection (DI)
+in Angular and the use of array notation and the $inject property to make DI annotation
minification-proof.
Following is an example of a very simple service. This service depends on the `$window` service
@@ -78,7 +78,7 @@ angular.module('myModule', [], function($provide) {
All services in Angular are instantiated lazily. This means that a service will be created
only when it is needed for instantiation of a service or an application component that depends on it.
-In other words, Angular won't instantiate lazy services unless they are requested directly or
+In other words, Angular won't instantiate services unless they are requested directly or
indirectly by the application.
diff --git a/docs/content/guide/dev_guide.services.managing_dependencies.ngdoc b/docs/content/guide/dev_guide.services.managing_dependencies.ngdoc
index e6f6aa43..6a769ca0 100644
--- a/docs/content/guide/dev_guide.services.managing_dependencies.ngdoc
+++ b/docs/content/guide/dev_guide.services.managing_dependencies.ngdoc
@@ -39,8 +39,8 @@ function myModuleCfgFn($provide) {
-Here is an example of two services that depend on each other, as well as on other services that are
-provided by Angular's web framework:
+Here is an example of two services, one of which depends on the other and both
+of which depend on other services that are provided by the Angular framework:
/**
diff --git a/docs/content/guide/dev_guide.services.ngdoc b/docs/content/guide/dev_guide.services.ngdoc
index a090146a..725e01e3 100644
--- a/docs/content/guide/dev_guide.services.ngdoc
+++ b/docs/content/guide/dev_guide.services.ngdoc
@@ -2,10 +2,9 @@
@name Developer Guide: Angular Services
@description
-Services are a feature that angular brings to client-side web apps from the server side, where
-services have been commonly used for a long time. Services in angular apps are substitutable
-objects that are wired together using {@link di dependency injection (DI)}. Services are
-most often used with {@link di dependency injection}, also a key feature of angular apps.
+Services are a feature that Angular brings to client-side web apps from the server side, where
+services have been commonly used for a long time. Services in Angular apps are substitutable
+objects that are wired together using {@link di dependency injection (DI)}.
## Related Topics
diff --git a/docs/content/guide/dev_guide.services.understanding_services.ngdoc b/docs/content/guide/dev_guide.services.understanding_services.ngdoc
index a580c2a5..339439a0 100644
--- a/docs/content/guide/dev_guide.services.understanding_services.ngdoc
+++ b/docs/content/guide/dev_guide.services.understanding_services.ngdoc
@@ -6,9 +6,9 @@ Angular services are singletons that carry out specific tasks common to web apps
{@link api/ng.$http $http service} that provides low level access to the browser's
`XMLHttpRequest` object.
-To use an angular service, you identify it as a dependency for the dependent (a controller, or
+To use an Angular service, you identify it as a dependency for the dependent (a controller, or
another service) that depends on the service. Angular's dependency injection subsystem takes care
-of the rest. The angular injector subsystem is in charge of service instantiation, resolution of
+of the rest. The Angular injector subsystem is in charge of service instantiation, resolution of
dependencies, and provision of dependencies to factory functions as requested.
Angular injects dependencies using "constructor" injection (the service is passed in via a factory
@@ -18,7 +18,7 @@ must explicitly define its dependencies by using the `$inject` property. For ex
myController.$inject = ['$location'];
-The angular web framework provides a set of services for common operations. Like other core angular
+The Angular web framework provides a set of services for common operations. Like other core Angular
variables and identifiers, the built-in services always start with `$` (such as `$http` mentioned
above). You can also create your own custom services.
diff --git a/docs/content/guide/dev_guide.templates.databinding.ngdoc b/docs/content/guide/dev_guide.templates.databinding.ngdoc
index 396aa609..12749365 100644
--- a/docs/content/guide/dev_guide.templates.databinding.ngdoc
+++ b/docs/content/guide/dev_guide.templates.databinding.ngdoc
@@ -2,8 +2,8 @@
@name Developer Guide: Templates: Data Binding in Angular
@description
-Data-binding in angular web apps is the automatic syncing of data between the model and view
-components. The way that angular implements data-binding lets you treat the model as the
+Data-binding in Angular web apps is the automatic syncronization of data between the model and view
+components. The way that Angular implements data-binding lets you treat the model as the
single-source-of-truth in your application. The view is a projection of the model at all times.
When the model changes, the view reflects the change, and vice versa.
@@ -19,7 +19,7 @@ to write code that constantly syncs the view with the model and the model with t
## Data Binding in Angular Templates
-The way angular templates works is different, as illustrated in the diagram. They are different
+The way Angular templates works is different, as illustrated in the diagram. They are different
because first the template (which is the uncompiled HTML along with any additional markup or
directives) is compiled on the browser, and second, the compilation step produces a live view. We
say live because any changes to the view are immediately reflected in the model, and any changes in
diff --git a/docs/content/guide/dev_guide.templates.ngdoc b/docs/content/guide/dev_guide.templates.ngdoc
index c349f9e2..2b4e3ff1 100644
--- a/docs/content/guide/dev_guide.templates.ngdoc
+++ b/docs/content/guide/dev_guide.templates.ngdoc
@@ -2,13 +2,13 @@
@name Developer Guide: Understanding Angular Templates
@description
-An angular template is the declarative specification that, along with information from the model
+An Angular template is the declarative specification that, along with information from the model
and controller, becomes the rendered view that a user sees in the browser. It is the static DOM,
containing HTML, CSS, and angular-specific elements and angular-specific element attributes. The
-angular elements and attributes direct angular to add behavior and transform the template DOM into
+Angular elements and attributes direct angular to add behavior and transform the template DOM into
the dynamic view DOM.
-These are the types of angular elements and element attributes you can use in a template:
+These are the types of Angular elements and element attributes you can use in a template:
* {@link guide/directive Directive} — An attribute or element that
augments an existing DOM element or represents a reusable DOM component - a widget.
@@ -20,8 +20,8 @@ curly brace notation `{{ }}` to bind expressions to elements is built-in angular
Note: In addition to declaring the elements above in templates, you can also access these elements
in JavaScript code.
-The following code snippet shows a simple angular template made up of standard HTML tags along with
-angular {@link guide/directive directives} and curly-brace bindings
+The following code snippet shows a simple Angular template made up of standard HTML tags along with
+Angular {@link guide/directive directives} and curly-brace bindings
with {@link expression expressions}:
diff --git a/docs/content/guide/dev_guide.unit-testing.ngdoc b/docs/content/guide/dev_guide.unit-testing.ngdoc
index 69eef843..76d8bbc3 100644
--- a/docs/content/guide/dev_guide.unit-testing.ngdoc
+++ b/docs/content/guide/dev_guide.unit-testing.ngdoc
@@ -5,35 +5,47 @@
JavaScript is a dynamically typed language which comes with great power of expression, but it also
come with almost no-help from the compiler. For this reason we feel very strongly that any code
written in JavaScript needs to come with a strong set of tests. We have built many features into
-angular which makes testing your angular applications easy. So there is no excuse for not do it.
+Angular which makes testing your Angular applications easy. So there is no excuse for not testing.
+
# It is all about NOT mixing concerns
+
Unit testing as the name implies is about testing individual units of code. Unit tests try to
-answer the question: Did I think about the logic correctly. Does the sort function order the list
-in the right order. In order to answer such question it is very important that we can isolate it.
-That is because when we are testing the sort function we don't want to be forced into crating
-related pieces such as the DOM elements, or making any XHR calls in getting the data to sort. While
+answer questions such as "Did I think about the logic correctly?" or "Does the sort function order the list
+in the right order?"
+
+In order to answer such question it is very important that we can isolate the unit of code under test.
+That is because when we are testing the sort function we don't want to be forced into creating
+related pieces such as the DOM elements, or making any XHR calls in getting the data to sort.
+
+While
this may seem obvious it usually is very difficult to be able to call an individual function on a
typical project. The reason is that the developers often mix concerns, and they end up with a
piece of code which does everything. It reads the data from XHR, it sorts it and then it
-manipulates the DOM. With angular we try to make it easy for you to do the right thing, and so we
+manipulates the DOM.
+
+With Angular we try to make it easy for you to do the right thing, and so we
provide dependency injection for your XHR (which you can mock out) and we created abstraction which
allow you to sort your model without having to resort to manipulating the DOM. So that in the end,
it is easy to write a sort function which sorts some data, so that your test can create a data set,
apply the function, and assert that the resulting model is in the correct order. The test does not
have to wait for XHR, or create the right kind of DOM, or assert that your function has mutated the
-DOM in the right way. Angular is written with testability in mind, but it still requires that you
-do the right thing. We tried to make the right thing easy, but angular is not magic, which means if
-you don't follow these, you may very well end up with an untestable application.
+DOM in the right way.
+
+## With great power comes great responsibility
+
+Angular is written with testability in mind, but it still requires that you
+do the right thing. We tried to make the right thing easy, but Angular is not magic, which means if
+you don't follow these guidelines you may very well end up with an untestable application.
-## Dependency Inject
+## Dependency Injection
There are several ways in which you can get a hold of a dependency:
1. You could create it using the `new` operator.
-2. You could look for it in a well know place, also known as global singleton.
+2. You could look for it in a well known place, also known as global singleton.
3. You could ask a registry (also known as service registry) for it. (But how do you get a hold of
-the registry? Must likely by looking it up in a well know place. See #2)
-4. You could expect that the it be handed to you.
+the registry? Must likely by looking it up in a well known place. See #2)
+4. You could expect that it be handed to you.
-Out of the list above only the last of is testable. Lets look at why:
+Out of the list above only the last option is testable. Let's look at why:
### Using the `new` operator
@@ -52,10 +64,10 @@ function MyClass() {
}
-The issue becomes, that in tests, we would very much like to instantiate a `MockXHR` which would
+The issue becomes that in tests, we would very much like to instantiate a `MockXHR` which would
allow us to return fake data and simulate network failures. By calling `new XHR()` we are
-permanently bound to the actual one, and there is no good way to replace it. Yes there is monkey
-patching, that is a bad idea for many reasons, which is outside the scope of this document.
+permanently bound to the actual XHR, and there is no good way to replace it. Yes there is monkey
+patching. That is a bad idea for many reasons which are outside the scope of this document.
The class above is hard to test since we have to resort to monkey patching:
@@ -69,7 +81,7 @@ XHR = oldXHR; // if you forget this bad things will happen
### Global look-up:
-Another way to approach the problem is look for the service in a well known location.
+Another way to approach the problem is to look for the service in a well known location.
function MyClass() {
@@ -83,7 +95,7 @@ function MyClass() {
}
-While no new instance of dependency is being created, it is fundamentally the same as `new`, in
+While no new instance of the dependency is being created, it is fundamentally the same as `new`, in
that there is no good way to intercept the call to `global.xhr` for testing purposes, other then
through monkey patching. The basic issue for testing is that global variable needs to be mutated in
order to replace it with call to a mock method. For further explanation why this is bad see: {@link
@@ -164,7 +176,7 @@ myClass.doWork();
Notice that no global variables were harmed in the writing of this test.
-Angular comes with {@link di dependency-injection} built in which makes the right thing
+Angular comes with {@link di dependency injection} built in which makes the right thing
easy to do, but you still need to do it if you wish to take advantage of the testability story.
## Controllers
@@ -197,7 +209,7 @@ function PasswordCtrl() {
}
-The code above is problematic from testability, since it requires your test to have the right kind
+The code above is problematic from a testability point of view, since it requires your test to have the right kind
of DOM present when the code executes. The test would look like this:
@@ -233,7 +245,7 @@ function PasswordCtrl($scope) {
}
-and the tests is straight forward
+and the test is straight forward
var pc = new PasswordCtrl();
@@ -245,7 +257,6 @@ expect(span.strength).toEqual('weak');
Notice that the test is not only much shorter but it is easier to follow what is going on. We say
that such a test tells a story, rather then asserting random bits which don't seem to be related.
-
## Filters
{@link api/ng.$filter Filters} are functions which transform the data into user readable
format. They are important because they remove the formatting responsibility from the application
@@ -266,16 +277,20 @@ expect(length('abc')).toEqual(3);
## Directives
Directives in angular are responsible for updating the DOM when the state of the model changes.
-
## Mocks
oue
+
## Global State Isolation
oue
+
# Preferred way of Testing
uo
+
## JavaScriptTestDriver
ou
+
## Jasmine
ou
+
## Sample project
uoe
diff --git a/docs/content/guide/di.ngdoc b/docs/content/guide/di.ngdoc
index 8dec62e8..a9280103 100644
--- a/docs/content/guide/di.ngdoc
+++ b/docs/content/guide/di.ngdoc
@@ -47,7 +47,7 @@ is simply handed the `greeter` at runtime.
This is desirable, but it puts the responsibility of getting hold of the dependency onto the
code responsible for the construction of `SomeClass`.
-To manage the responsibility of dependency creation, each angular application has an {@link
+To manage the responsibility of dependency creation, each Angular application has an {@link
api/angular.injector injector}. The injector is a service locator that is responsible for
construction and lookup of dependencies.
@@ -109,7 +109,7 @@ deal with the injector. This setup does not break the Law of Demeter.
How does the injector know what service needs to be injected?
-The application developer needs to provide annotation information, that the injector uses in order
+The application developer needs to provide annotation information that the injector uses in order
to resolve the dependencies. Throughout Angular certain API functions are invoked using the
injector, as per the API documentation. The injector needs to know what services to inject into
the function. Below are three equivalent ways of annotating your code with service name
@@ -186,14 +186,13 @@ For this reason the third annotation style is provided as well.
Keep in mind that all of the annotation styles are equivalent and can be used anywhere in Angular
where injection is supported.
-
# Where can I use DI?
DI is pervasive throughout Angular. It is typically used in controllers and factory methods.
## DI in controllers
-Controllers are classes which are responsible for application behavior. Recommended way of
+Controllers are classes which are responsible for application behavior. The recommended way of
declaring controllers is:
@@ -211,7 +210,7 @@ declaring controllers is:
## Factory methods
Factory methods are responsible for creating most objects in Angular. Examples are directives,
-services, and filters. The factory methods are register with the module, and the recommended way
+services, and filters. The factory methods are registered with the module, and the recommended way
of declaring factories is:
diff --git a/docs/content/guide/directive.ngdoc b/docs/content/guide/directive.ngdoc
index 3d669b1b..8ef5e08f 100644
--- a/docs/content/guide/directive.ngdoc
+++ b/docs/content/guide/directive.ngdoc
@@ -110,7 +110,7 @@ Compilation of HTML happens in three phases:
## Reasons behind the compile/link separation
At this point you may wonder why the compile process is broken down to a compile and link phase.
-To understand this, let's look at a real world example with repeater:
+To understand this, let's look at a real world example with a repeater:
Hello {{user}}, you have these actions:
@@ -296,7 +296,7 @@ makes it injectable following all of the rules of injection annotation.
The directive definition object provides instructions to the {@link api/ng.$compile
compiler}. The attributes are:
- * `name` - Name of the current scope. Optional defaults to the name at registration.
+ * `name` - Name of the current scope. Optional and defaults to the name at registration.
* `priority` - When there are multiple directives defined on a single DOM element, sometimes it
is necessary to specify the order in which the directives are applied. The `priority` is used
@@ -310,7 +310,7 @@ compiler}. The attributes are:
* `scope` - If set to:
* `true` - then a new scope will be created for this directive. If multiple directives on the
- same element request new scope, only one new scope is created. The new scope rule does not
+ same element request a new scope, only one new scope is created. The new scope rule does not
apply for the root of the template since the root of the template always gets a new scope.
* `{}` (object hash) - then a new 'isolate' scope is created. The 'isolate' scope differs from
@@ -474,7 +474,7 @@ compiler linking function will fail to locate the correct elements for linking.
### Post-linking function
-Executed after the child elements are linked. Safe to do DOM transformation in here.
+Executed after the child elements are linked. It is safe to do DOM transformation in the post-linking function.
## Attributes
@@ -584,7 +584,7 @@ isolated scope then it will not be able to bind to anything. For this reason the
is a child of the original scope, before the widget created an isolated scope for its local
variables. This makes the transcluded and widget isolated scope siblings.
-This may seem as unexpected complexity, but it gives the widget user and developer the least
+This may seem to be unexpected complexity, but it gives the widget user and developer the least
surprise.
Therefore the final directive definition looks something like this:
@@ -609,7 +609,6 @@ can be built.
Following is an example of building a reusable widget.
-
-From the `ng-model` attribute of the `` tags, angular automatically sets up two-way data
+From the `ng-model` attribute of the `` tags, Angular automatically sets up two-way data
binding, and we also demonstrate some easy input validation:
Quantity:
@@ -129,7 +129,7 @@ binding, and we also demonstrate some easy input validation:
These input widgets look normal enough, but consider these points:
- * When this page loaded, angular bound the names of the input widgets (`qty` and `cost`) to
+ * When this page loaded, Angular bound the names of the input widgets (`qty` and `cost`) to
variables of the same name. Think of those variables as the "Model" component of the
Model-View-Controller design pattern.
* Note that the HTML widget {@link api/ng.directive:input input}
@@ -193,7 +193,7 @@ Angular frees you from the following pain:
code. Angular eliminates almost all of this boilerplate, leaving code that describes the
overall flow of the application rather than all of the implementation details.
* **Writing tons of initialization code just to get started:** Typically you need to write a lot
- of plumbing just to get a basic "Hello World" AJAX app working. With angular you can bootstrap
+ of plumbing just to get a basic "Hello World" AJAX app working. With Angular you can bootstrap
your app easily using services, which are auto-injected into your application in a {@link
http://code.google.com/p/google-guice/ Guice}-like dependency-injection style. This allows you
to get started developing features quickly. As a bonus, you get full control over the
diff --git a/docs/content/guide/scope.ngdoc b/docs/content/guide/scope.ngdoc
index 5425215f..b2dd5e53 100644
--- a/docs/content/guide/scope.ngdoc
+++ b/docs/content/guide/scope.ngdoc
@@ -81,7 +81,7 @@ Logically the rendering of `{{greeting}}` involves:
You can think of the scope and its properties as the data which is used to render the view. The
scope is the single source-of-truth for all things view related.
-From testability, the separation of the controller and the view is desirable, because it allows us
+From a testability point of view, the separation of the controller and the view is desirable, because it allows us
to test the behavior without being distracted by the rendering details.
@@ -151,7 +151,7 @@ This example illustrates scopes in application, and prototypical inheritance of