Skip to content

Commit a6a9eea

Browse files
authored
errata1a: Service-Decorator (#93)
1 parent 1f0808d commit a6a9eea

1 file changed

Lines changed: 43 additions & 2 deletions

File tree

material/errata-1a/README.md

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Errata zur 1. Auflage (2026)"
33
published: 2026-03-13
4-
lastModified: 2026-03-13
4+
lastModified: 2026-05-09
55
hidden: true
66
---
77

@@ -16,7 +16,48 @@ Bitte zögere nicht, und schreib uns eine E-Mail: [team@angular-buch.com](mailto
1616
------
1717

1818

19-
### 22.3 HttpResource testen: `useFactory` nicht notwendig
19+
## 11 ff. Services: Decorator `@Service()` statt `@Injectable()`
20+
21+
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+
export class BookStore {}
33+
```
34+
35+
```ts
36+
// NACHHER
37+
import { Service } from '@angular/core';
38+
39+
@Service()
40+
export class BookStore {}
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
2061

2162
In Abschnitt 22.3 beschreiben wir, wie HTTP-Requests mit `httpResource()` getestet werden können.
2263
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

Comments
 (0)