diff --git a/apps/angular/39-injection-token/src/app/phone.component.ts b/apps/angular/39-injection-token/src/app/phone.component.ts
index 41ee3cfc0..453bd29fe 100644
--- a/apps/angular/39-injection-token/src/app/phone.component.ts
+++ b/apps/angular/39-injection-token/src/app/phone.component.ts
@@ -1,9 +1,11 @@
import { Component } from '@angular/core';
import { TimerContainerComponent } from './timer-container.component';
+import { TIMER } from './timer-provider';
@Component({
selector: 'app-phone',
imports: [TimerContainerComponent],
+ providers: [{ provide: TIMER, useValue: 2000 }],
template: `
Phone Call Timer:
diff --git a/apps/angular/39-injection-token/src/app/timer-container.component.ts b/apps/angular/39-injection-token/src/app/timer-container.component.ts
index 67db6059a..07be68be2 100644
--- a/apps/angular/39-injection-token/src/app/timer-container.component.ts
+++ b/apps/angular/39-injection-token/src/app/timer-container.component.ts
@@ -1,5 +1,5 @@
-import { Component } from '@angular/core';
-import { DEFAULT_TIMER } from './data';
+import { Component, inject } from '@angular/core';
+import { TIMER } from './timer-provider';
import { TimerComponent } from './timer.component';
@Component({
selector: 'timer-container',
@@ -16,5 +16,5 @@ import { TimerComponent } from './timer.component';
},
})
export class TimerContainerComponent {
- timer = DEFAULT_TIMER;
+ timer = inject(TIMER);
}
diff --git a/apps/angular/39-injection-token/src/app/timer-provider.ts b/apps/angular/39-injection-token/src/app/timer-provider.ts
new file mode 100644
index 000000000..710e68ba2
--- /dev/null
+++ b/apps/angular/39-injection-token/src/app/timer-provider.ts
@@ -0,0 +1,7 @@
+import { InjectionToken } from '@angular/core';
+import { DEFAULT_TIMER } from './data';
+
+export const TIMER = new InjectionToken('timer', {
+ providedIn: 'root',
+ factory: () => DEFAULT_TIMER,
+});
diff --git a/apps/angular/39-injection-token/src/app/timer.component.ts b/apps/angular/39-injection-token/src/app/timer.component.ts
index 335a077bf..af6e35b31 100644
--- a/apps/angular/39-injection-token/src/app/timer.component.ts
+++ b/apps/angular/39-injection-token/src/app/timer.component.ts
@@ -1,7 +1,7 @@
-import { Component } from '@angular/core';
+import { Component, inject } from '@angular/core';
import { toSignal } from '@angular/core/rxjs-interop';
import { interval } from 'rxjs';
-import { DEFAULT_TIMER } from './data';
+import { TIMER } from './timer-provider';
@Component({
selector: 'timer',
@@ -10,5 +10,5 @@ import { DEFAULT_TIMER } from './data';
`,
})
export class TimerComponent {
- timer = toSignal(interval(DEFAULT_TIMER));
+ timer = toSignal(interval(inject(TIMER)));
}