parent
245b85f72a
commit
4006c9b6e6
|
@ -1241,7 +1241,7 @@ Chuck: After reviewing your PR comment I'm still at a loss. See [comment there](
|
|||
### Non-null type assertion operator
|
||||
|
||||
Use the [non-null type assertion operator](guide/template-syntax#non-null-assertion-operator)
|
||||
to suppress the `Object is possibly 'undefined'` error when it is incovienent to use
|
||||
to suppress the `Object is possibly 'undefined'` error when it is inconvenient to use
|
||||
`*ngIf` or when some constraint in the component ensures that the expression is always
|
||||
non-null when the binding expression is interpolated.
|
||||
|
||||
|
@ -1366,7 +1366,7 @@ for example, the content of annotations (such as a component's template), which
|
|||
emits to the `.js` file but not to the `.d.ts` file.
|
||||
|
||||
This option should be set to `true` if you are using TypeScript's `--outFile` option, because the metadata files
|
||||
are not valid for this style of TypeScript output. It is not recommeded to use `--outFile` with
|
||||
are not valid for this style of TypeScript output. It is not recommended to use `--outFile` with
|
||||
Angular. Use a bundler, such as [webpack](https://webpack.js.org/), instead.
|
||||
|
||||
This option can also be set to `true` when using factory summaries because the factory summaries
|
||||
|
@ -1461,7 +1461,7 @@ JavaScript with [JSDoc](http://usejsdoc.org/) comments needed by the
|
|||
### *annotationsAs*
|
||||
|
||||
Use this option to modify how the Angular specific annotations are emitted to improve tree-shaking. Non-Angular
|
||||
annotations and decorators are unnaffected. Default is `static fields`.
|
||||
annotations and decorators are unaffected. Default is `static fields`.
|
||||
|
||||
<style>
|
||||
td, th {vertical-align: top}
|
||||
|
|
|
@ -19,7 +19,7 @@ Observables are often compared to promises. Here are some key differences:
|
|||
|
||||
### Creation and subscription
|
||||
|
||||
* Observables are not executed until a consumer subcribes. The `subscribe()` executes the defined behavior once, and it can be called again. Each subscription has its own computation. Resubscription causes recomputation of values.
|
||||
* Observables are not executed until a consumer subscribes. The `subscribe()` executes the defined behavior once, and it can be called again. Each subscription has its own computation. Resubscription causes recomputation of values.
|
||||
|
||||
<code-example hideCopy>
|
||||
// declare a publishing operation
|
||||
|
|
|
@ -149,7 +149,7 @@ By default, the DI framework searches for a provider in the injector hierarchy,
|
|||
starting at the component's local injector of the component, and if necessary bubbling up
|
||||
through the injector tree until it reaches the root injector.
|
||||
|
||||
* The first injector configured with a provider supplies the the dependency (a service instance or value) to the constructor.
|
||||
* The first injector configured with a provider supplies the dependency (a service instance or value) to the constructor.
|
||||
|
||||
* If no provider is found in the root injector, the DI framework returns null to the constructor.
|
||||
|
||||
|
@ -260,7 +260,7 @@ Using a custom provider allows you to provide a concrete implementation for impl
|
|||
|
||||
</code-example>
|
||||
|
||||
The `factory` function returns the `localStorage` property that is attached to the browser window object. The `Inject` decorator is a constructor parameter used to specify a custom provider of a dependency. This custom provider can now be overriden during testing with a mock API of `localStorage` instead of interactive with real browser APIs.
|
||||
The `factory` function returns the `localStorage` property that is attached to the browser window object. The `Inject` decorator is a constructor parameter used to specify a custom provider of a dependency. This custom provider can now be overridden during testing with a mock API of `localStorage` instead of interactive with real browser APIs.
|
||||
|
||||
### Modify the provider search with `@Self` and `@SkipSelf`
|
||||
|
||||
|
|
|
@ -112,7 +112,7 @@ The `CraigComponent` tries to inject `Base` into its `alex` constructor paramete
|
|||
|
||||
|
||||
|
||||
Unfortunately, this does'nt work.
|
||||
Unfortunately, this doesn't work.
|
||||
The <live-example name="dependency-injection-in-action"></live-example>
|
||||
confirms that the `alex` parameter is null.
|
||||
*You cannot inject a parent by its base class.*
|
||||
|
|
|
@ -254,7 +254,7 @@ The `--prod` _meta-flag_ engages the following optimization features.
|
|||
The remaining [copy deployment steps](#copy-files) are the same as before.
|
||||
|
||||
See [Building and serving Angular apps](guide/build)
|
||||
for more about about CLI build options and what they do.
|
||||
for more about CLI build options and what they do.
|
||||
|
||||
{@a enable-prod-mode}
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ The abstraction of the form model promotes simplicity over structure. The templa
|
|||
|
||||
## Data flow in forms
|
||||
|
||||
When building forms in Angular, it's important to understand how the the framework handles data flowing from the user or from programmatic changes. Reactive and template-driven forms follow two different strategies when handling form input. The data flow examples below begin with the favorite color input field example from above, and they show how changes to favorite color are handled in reactive forms compared to template-driven forms.
|
||||
When building forms in Angular, it's important to understand how the framework handles data flowing from the user or from programmatic changes. Reactive and template-driven forms follow two different strategies when handling form input. The data flow examples below begin with the favorite color input field example from above, and they show how changes to favorite color are handled in reactive forms compared to template-driven forms.
|
||||
|
||||
### Data flow in reactive forms
|
||||
|
||||
|
@ -253,7 +253,7 @@ To learn more about reactive forms, see the following guides:
|
|||
* [Form Validation](guide/form-validation#reactive-form-validation)
|
||||
* [Dynamic forms](guide/dynamic-form)
|
||||
|
||||
To learn more about tempate-driven forms, see the following guides:
|
||||
To learn more about template-driven forms, see the following guides:
|
||||
|
||||
* [Template-driven Forms](guide/forms)
|
||||
* [Form Validation](guide/form-validation#template-driven-validation)
|
||||
|
|
|
@ -936,7 +936,7 @@ setting up such mocking straightforward.
|
|||
### Mocking philosophy
|
||||
|
||||
Angular's HTTP testing library is designed for a pattern of testing wherein
|
||||
the the app executes code and makes requests first.
|
||||
the app executes code and makes requests first.
|
||||
|
||||
Then a test expects that certain requests have or have not been made,
|
||||
performs assertions against those requests,
|
||||
|
|
|
@ -359,7 +359,7 @@ Pluralization categories include (depending on the language):
|
|||
After the pluralization category, put the default English text in braces (`{}`).
|
||||
|
||||
In the example above, the three options are specified according to that pluralization pattern. For
|
||||
talking about about zero minutes, you use `=0 {just now}`. For one minute, you use `=1 {one minute}`.
|
||||
talking about zero minutes, you use `=0 {just now}`. For one minute, you use `=1 {one minute}`.
|
||||
Any unmatched cardinality uses `other {{{minutes}} minutes ago}`. You could choose to add patterns
|
||||
for two, three, or any other number if the pluralization rules were different. For the example of
|
||||
"minute", only these three patterns are necessary in English.
|
||||
|
@ -542,7 +542,7 @@ This sample file is easy to translate without a special editor or knowledge of F
|
|||
|
||||
|
||||
2. Duplicate the `<source/>` tag, rename it `target`, and then replace its content with the French
|
||||
greeting. If you were working with a more complex translation, you could use the the information
|
||||
greeting. If you were working with a more complex translation, you could use the information
|
||||
and context provided by the source, description, and meaning elements to guide your selection of
|
||||
the appropriate French translation.
|
||||
|
||||
|
|
|
@ -255,7 +255,7 @@ You can combine keyframes with `duration`, `delay`, and `easing` within a single
|
|||
|
||||
### Keyframes with a pulsation
|
||||
|
||||
Use ketframes to create a pulse effect in your animations by defining styles at specific offset throughout the animation.
|
||||
Use keyframes to create a pulse effect in your animations by defining styles at specific offset throughout the animation.
|
||||
|
||||
Here's an example of using keyframes to create a pulse effect:
|
||||
|
||||
|
@ -305,4 +305,4 @@ You may also be interested in the following:
|
|||
* [Introduction to Angular animations](guide/animations)
|
||||
* [Complex animation sequences](guide/complex-animation-sequences)
|
||||
* [Reusable animations](guide/reusable-animations)
|
||||
* [Route transition animations](guide/route-animations)
|
||||
* [Route transition animations](guide/route-animations)
|
||||
|
|
Loading…
Reference in New Issue