mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-05-28 23:28:16 +00:00
docs(guide/services): explain services in plain language
See the discussion at http://docs.angularjs.org/guide/dev_guide.services.understanding_services#comment-1002821035 Closes #4055
This commit is contained in:
parent
80ab7eaf15
commit
910788ed9c
1 changed files with 8 additions and 1 deletions
|
|
@ -11,6 +11,14 @@ another service) that depends on the service. Angular's dependency injection su
|
||||||
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.
|
dependencies, and provision of dependencies to factory functions as requested.
|
||||||
|
|
||||||
|
The purpose of a service factory function is to generate a single object or function that
|
||||||
|
represents the service to the rest of the application. That object or function will then be
|
||||||
|
passed as a parameter to any other factory function which specifies a dependency on this service.
|
||||||
|
|
||||||
|
Angular factory functions are executed lazily. That is, they are only executed when needed
|
||||||
|
to satisfy a dependency, and are then executed exactly once for each service. Everything which is
|
||||||
|
dependent on this service gets a reference to the single instance generated by the service factory.
|
||||||
|
|
||||||
Angular injects dependencies using "constructor" injection (the service is passed in via a factory
|
Angular injects dependencies using "constructor" injection (the service is passed in via a factory
|
||||||
function). Because JavaScript is a dynamically typed language, Angular's dependency injection
|
function). Because JavaScript is a dynamically typed language, Angular's dependency injection
|
||||||
subsystem cannot use static types to identify service dependencies. For this reason a dependent
|
subsystem cannot use static types to identify service dependencies. For this reason a dependent
|
||||||
|
|
@ -22,7 +30,6 @@ The Angular web framework provides a set of services for common operations. Like
|
||||||
variables and identifiers, the built-in services always start with `$` (such as `$http` mentioned
|
variables and identifiers, the built-in services always start with `$` (such as `$http` mentioned
|
||||||
above). You can also create your own custom services.
|
above). You can also create your own custom services.
|
||||||
|
|
||||||
|
|
||||||
## Related Topics
|
## Related Topics
|
||||||
|
|
||||||
* {@link di About Angular Dependency Injection}
|
* {@link di About Angular Dependency Injection}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue