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))); }