You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/components/README.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -59,7 +59,7 @@ Angular provides lifecycle hook methods to tap into key events in the lifecycle
59
59
60
60
-`ngOnChanges`: called after the constructor and every time input values change. The method receives a SimpleChanges object of current and previous property values.
61
61
62
-
-`ngOnInit`: called only once. This is where the **component's initialisation** should take place, such as **fetching intial data**. Indeed components should be cheap to construct, so costly operations should be kept out of the constructor. The constructor should do no more than set the initial local variables to simple values.
62
+
-`ngOnInit`: called only once. This is where the **component's initialisation** should take place, such as **fetching initial data**. Indeed components should be cheap to construct, so costly operations should be kept out of the constructor. The constructor should do no more than set the initial local variables to simple values.
63
63
64
64
-`ngDoCheck`: called immediately after `ngOnChanges` on every change detection run, and immediately after `ngOnInit` on the first run. Gives an opportunity to implement a custom change detection algorithm.
Copy file name to clipboardExpand all lines: docs/src/fr/pipes/README.md
+4-5Lines changed: 4 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -83,18 +83,18 @@ Le premier argument de la méthode `transform` est la valeur sur laquelle le pip
83
83
84
84
Le nom du pipe doit être en lowerCamelCase. C'est une bonne pratique de le faire commencer par les initiales de votre application, tout comme pour le sélecteur de vos composants.
85
85
86
-
Comme toute autre classe, les pipes peuvent utiliser leur constructeur pour bénéficier de l'injection de dépendances. Il est possible d'injecter un autre pipe par exemple. Ceci est particulièrement utile lorsqu'un pipe intégré doit être utilisé dans toute l'application avec les mêmes paramètres. Un pipe personnalisé peut servir de wrapper afin de simplifier l'utilisation d'un pipe intégré.
86
+
Comme toute autre classe, les pipes peuvent bénéficier de l'injection de dépendances. Il est possible d'injecter un autre pipe par exemple. Ceci est particulièrement utile lorsqu'un pipe intégré doit être utilisé dans toute l'application avec les mêmes paramètres. Un pipe personnalisé peut servir de wrapper afin de simplifier l'utilisation d'un pipe intégré.
87
87
88
88
Dans l'exemple suivant, le prix remisé est calculé en fonction d'un taux de remise. Aucune donnée du catalogue dans le composant n'est mutée pour afficher le nouveau prix.
Il est également possible d'utiliser des pipes dans une classe de composant en l'injectant dans son constructeur et en appelant sa méthode transform. Le pipe doit alors être ajouté aux providers du composant ou de l'*ApplicationConfig*. Lorsqu'un pipe n'est pas utilisé dans le template, il n'a pas besoin d'être présent dans le tableau des imports du composant.
94
+
Il est également possible d'utiliser des pipes dans une classe de composant en l'injectant et en appelant sa méthode transform. Le pipe doit alors être ajouté aux providers du composant ou de l'*ApplicationConfig*. Lorsqu'un pipe n'est pas utilisé dans le template, il n'a pas besoin d'être présent dans le tableau des imports du composant.
95
95
96
96
```ts
97
-
import { Component } from'@angular/core'
97
+
import { Component, inject } from'@angular/core'
98
98
import { UpperCasePipe } from'@angular/common'
99
99
100
100
@Component({
@@ -104,8 +104,7 @@ import { UpperCasePipe } from '@angular/common'
Copy file name to clipboardExpand all lines: docs/src/fr/routing/README.md
+10-11Lines changed: 10 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -360,20 +360,19 @@ Le service `ActivatedRoute` décrit l'état actuel du *router*. Grâce à lui, l
360
360
`paramMap` et `queryParamMap` sont des Observables, une notion que nous verrons plus en détail dans un chapitre ultérieur. Un Observable permet d'observer comment les informations évoluent dans le temps. Le service `ActivatedRoute` fournit également une propriété `snapshot` pour obtenir uniquement l'état du routeur à un moment donné. Cette propriété est suffisante pour couvrir la plupart des cas.
361
361
362
362
Pour extraire un paramètre d'une route, deux étapes sont nécessaires :
363
-
1. Injectez le service `ActivatedRoute` dans le constructeur du composant qui en a besoin
363
+
1. Injectez le service `ActivatedRoute` dans le composant qui en a besoin
364
364
2. Récupérez le paramMap depuis le snapshot dans le hook de cycle de vie `OnInit`
365
365
366
-
```ts{10,13}
367
-
import { Component, OnInit } from '@angular/core'
366
+
```ts{9,12}
367
+
import { Component, OnInit, inject } from '@angular/core'
@@ -421,7 +420,7 @@ Qu'est-ce que ça veut dire ? Si vous ne permettez la navigation vers la même r
421
420
### Service Router
422
421
423
422
Parfois, il est nécessaire de déclencher certaines actions avant le routage. C'est ce qui se passe lorsque nous cliquons sur un bouton de connexion. Tout d'abord, un appel http est effectué et en fonction de la réponse, le routage a lieu. Le service `Router` permet de déclencher la navigation depuis la classe du composant.
424
-
1. Injecter le service 'Router' via le constructeur
423
+
1. Injecter le service 'Router' via la mtéthode *inject*
425
424
2. Utilisez la méthode `navigateByUrl` pour déclencher la navigation. `navigateByUrl` prend toujours un chemin absolu. Si vous souhaitez utiliser un chemin relatif, utilisez plutôt la méthode `navigate`.
426
425
427
426
```ts{6,9}
@@ -430,7 +429,7 @@ Parfois, il est nécessaire de déclencher certaines actions avant le routage. C
Copy file name to clipboardExpand all lines: docs/src/fr/services/README.md
+19-25Lines changed: 19 additions & 25 deletions
Original file line number
Diff line number
Diff line change
@@ -23,21 +23,18 @@ export class ExampleService {
23
23
}
24
24
```
25
25
26
-
Lorsqu'un composant nécessite un service, le service doit être ajouté à son constructeur de la manière suivante :
26
+
Lorsqu'un composant nécessite un service, le service doit être injecté de la manière suivante :
27
27
28
-
```ts{11}
29
-
import { Component } from '@angular/core'
28
+
```ts{1, 9}
29
+
import { Component, inject } from '@angular/core'
30
30
import { ExampleService } from '@services/example.service'
31
31
32
32
@Component({
33
33
selector: 'app-example',
34
34
templateUrl: './example.component.html'
35
35
})
36
36
export class ExampleComponent {
37
-
38
-
constructor(
39
-
private exampleService: ExampleService
40
-
) {}
37
+
private exampleService = inject(ExampleService)
41
38
}
42
39
```
43
40
@@ -53,7 +50,7 @@ Au démarrage, Angular crée un injecteur à l'échelle de l'application. Si d'a
53
50
54
51
Vous ne l'avez peut-être pas réalisé, mais nous avons déjà fait appel à des fournisseurs. Dans le chapitre sur les pipes, pour utiliser le `UpperCasePipe` dans la classe du composant plutôt que dans le template, nous l'avons ajouté au tableau des providers du composant.
55
52
56
-
Lorsque Angular découvre qu'un composant dépend d'un service, il vérifie d'abord si l'injecteur a une instance existante de ce service. Si une instance du service demandé n'existe pas encore, l'injecteur en crée une à l'aide du provider enregistré et l'ajoute à l'injecteur avant de renvoyer le service à Angular. Lorsque tous les services demandés ont été résolus et renvoyés, Angular peut appeler le constructeur du composant avec ces services comme arguments.
53
+
Lorsque Angular découvre qu'un composant dépend d'un service, il vérifie d'abord si l'injecteur a une instance existante de ce service. Si une instance du service demandé n'existe pas encore, l'injecteur en crée une à l'aide du provider enregistré et l'ajoute à l'injecteur avant de renvoyer le service à Angular. Lorsque tous les services demandés ont été résolus et renvoyés, Angular peut instancié le composant avec ces services.
57
54
58
55
Les dépendances peuvent être fournies à trois niveaux :
59
56
-**au niveau root:** c'est le comportement par défaut lors de la création d'un service avec le CLI. C'est ce que signifie `providedIn: 'root'`. La *même instance* de la dépendance est injectée partout où elle est nécessaire comme s'il s'agissait d'un singleton.
Dans une Single Page Application (SPA), la communication avec le serveur se fait via des requêtes HTTP asynchrones (AJAX) ou des protocoles plus spécialisés tels que WebSocket. Nous allons voir comment faire ces requêtes réseau depuis une application Angular.
119
116
120
-
Angular fournit un module, le `HttpClientModule`, pour effectuer des appels HTTP. Le module fournit un service injectable, le `HttpClient`, pour faire des requêtes GET, POST, PATCH, DELETE et PUT. Pour injecter le `HttpClient` dans un service, ajoutez d'abord le `HttpClientModule` au tableau `imports` de `AppModule`.
117
+
Angular fournit un module, le `HttpClientModule`, pour effectuer des appels HTTP. Le module fournit un service injectable, le `HttpClient`, pour faire des requêtes GET, POST, PATCH, DELETE et PUT. Pour injecter le `HttpClient` dans un service, ajoutez d'abord le `HttpClientModule` au tableau de `providers` de l'application dans le fichier `app.config.ts` en lui passant la fonction `provideHttpClient()`.
121
118
122
119
Voici quelques exemples:
123
120
124
121
<CodeGroup>
125
122
<CodeGroupItemtitle="Service">
126
123
127
124
```ts
128
-
import { Injectable } from'@angular/core'
125
+
import { Injectable, inject } from'@angular/core'
129
126
import { HttpClient } from'@angular/common/http'
130
127
import { Observable } from'rxjs'
131
128
import { User } from'@models/user/user'
@@ -136,19 +133,19 @@ import { UserEdition } from '@models/user/user-edition'
Copy file name to clipboardExpand all lines: docs/src/pipes/README.md
+3-4Lines changed: 3 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -91,10 +91,10 @@ In the following example, the discounted price is calculated given a discount ra
91
91
92
92
## Using a pipe outside the template
93
93
94
-
It is also possible to use pipes in a component class by injecting it in its constructor and calling its transform method. The pipe needs to be added to the providers array of the component decorator or *ApplicationConfig*. When not used in the template, the pipe doesn't need to be present in the imports array of the component decorator.
94
+
It is also possible to use pipes in a component class by injecting via the *inject* method and calling its transform method. The pipe needs to be added to the providers array of the component decorator or *ApplicationConfig*. When not used in the template, the pipe doesn't need to be present in the imports array of the component decorator.
95
95
96
96
```ts
97
-
import { Component } from'@angular/core'
97
+
import { Component, inject } from'@angular/core'
98
98
import { UpperCasePipe } from'@angular/common'
99
99
100
100
@Component({
@@ -104,8 +104,7 @@ import { UpperCasePipe } from '@angular/common'
Copy file name to clipboardExpand all lines: docs/src/routing/README.md
+10-11Lines changed: 10 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -360,20 +360,19 @@ The `ActivatedRoute` service describes the current state of the *router*. Throug
360
360
`paramMap` and `queryParamMap` are Observables, a notion we will see more in detail in a later chapter. Observable allows to observe how information change over time. The `ActivatedRoute` service also provides a `snapshot` property to only get the state of the router at a given point in time. This property is enough to cover most cases.
361
361
362
362
To extract a parameter from a route, two steps are required:
363
-
1. Inject the `ActivatedRoute` service in the constructor of the component needing it
363
+
1. Inject the `ActivatedRoute` service in the component needing it
364
364
2. Retrieve the paramMap from the snapshot in the `OnInit` lifecycle hook
365
365
366
-
```ts{10,13}
367
-
import { Component, OnInit } from '@angular/core'
366
+
```ts{9,12}
367
+
import { Component, OnInit, inject } from '@angular/core'
@@ -421,7 +420,7 @@ What does it mean ? If you only allow the navigation to the same route via the a
421
420
### Router service
422
421
423
422
Sometimes, it is necessary to trigger some actions before routing. This is what happens when we click on a login button. First, an http call is made and depending on the response, routing takes place. The `Router` service allows to trigger navigation from the component class.
424
-
1. Inject the `Router` service via the constructor
423
+
1. Inject the `Router` service via the inject method
425
424
426
425
2. Use the `navigateByUrl` method to trigger the navigation. `navigateByUrl` always takes an absolute path. In case you would like to user a relative path, use the `navigate` method instead.
427
426
@@ -431,7 +430,7 @@ Sometimes, it is necessary to trigger some actions before routing. This is what
0 commit comments