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
Mit Angular 22 wurde der neue Decorator `@Service()` eingeführt.
22
+
Er ist die moderne und ergonomische Alternative zum etablierten Decorator `@Injectable()` mit der Einstellung `providedIn: 'root'`.
23
+
Der Aufruf kann also direkt ersetzt werden:
24
+
25
+
```ts
26
+
// VORHER
27
+
import { Injectable } from'@angular/core';
28
+
29
+
@Injectable({
30
+
providedIn: 'root'
31
+
})
32
+
exportclassBookStore {}
33
+
```
34
+
35
+
```ts
36
+
// NACHHER
37
+
import { Service } from'@angular/core';
38
+
39
+
@Service()
40
+
exportclassBookStore {}
41
+
```
42
+
43
+
Die Angular CLI generiert Services mit `ng generate service` nun ebenfalls mit dem neuen Decorator.
44
+
Im Buch ist jedoch noch der ältere Decorator `@Injectable()` abgedruckt. Den [Code auf GitHub](https://github.com/angular-buch/book-manager1) haben wir entsprechend aktualisiert.
45
+
46
+
Um beim Generieren den älteren Decorator zu erhalten, können wir das Flag `--injectable` verwenden.
47
+
Der Decorator `@Injectable()` wird also zunächst nicht abgeschafft, sodass bestehende Anwendungen nicht sofort migriert werden müssen.
48
+
49
+
```bash
50
+
# mit Decorator `@Injectable()`
51
+
ng g service book-store --injectable
52
+
53
+
# mit Decorator `@Service()`
54
+
ng g service book-store
55
+
```
56
+
57
+
58
+
59
+
60
+
## 22.3 HttpResource testen: `useFactory` nicht notwendig
20
61
21
62
In Abschnitt 22.3 beschreiben wir, wie HTTP-Requests mit `httpResource()` getestet werden können.
22
63
Im darunter liegenden Unterabschnitt "Resource mocken" erläutern wir: Um ein Resource-Objekt im Test zu erzeugen, müssen wir `useFactory` einsetzen, denn die Resource benötigt einen Injection Context.
0 commit comments