Skip to content

Commit a33c9e6

Browse files
committed
feat: refactor task services to use InjectionToken for dependency injection
1 parent e01b766 commit a33c9e6

File tree

4 files changed

+8
-6
lines changed

4 files changed

+8
-6
lines changed

09-services-deep-dive/src/app/tasks/new-task/new-task.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { Component, ElementRef, viewChild } from '@angular/core';
1+
import { Component, ElementRef, Inject, viewChild } from '@angular/core';
22
import { FormsModule } from '@angular/forms';
33
import { TasksService } from '../tasks.service';
4+
import { TasksServiceToken } from '../../../main';
45

56
@Component({
67
selector: 'app-new-task',
@@ -13,7 +14,7 @@ export class NewTaskComponent {
1314
private formEl = viewChild<ElementRef<HTMLFormElement>>('form');
1415

1516
constructor(
16-
private tasksService: TasksService,
17+
@Inject(TasksServiceToken) private tasksService: TasksService,
1718
) {}
1819

1920
onAddTask(title: string, description: string) {

09-services-deep-dive/src/app/tasks/tasks-list/task-item/task-item.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Component, computed, inject, input } from '@angular/core';
22
import { FormsModule } from '@angular/forms';
33

44
import { Task, TaskStatus } from '../../task.model';
5-
import { TasksService } from '../../tasks.service';
5+
import { TasksServiceToken } from '../../../../main';
66

77
@Component({
88
selector: 'app-task-item',
@@ -12,7 +12,7 @@ import { TasksService } from '../../tasks.service';
1212
styleUrl: './task-item.component.css',
1313
})
1414
export class TaskItemComponent {
15-
private tasksService = inject(TasksService);
15+
private tasksService = inject(TasksServiceToken);
1616
task = input.required<Task>();
1717
taskStatus = computed(() => {
1818
switch (this.task().status) {

09-services-deep-dive/src/app/tasks/tasks-list/tasks-list.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Component, computed, inject, signal } from '@angular/core';
22

33
import { TaskItemComponent } from './task-item/task-item.component';
44
import { TasksService } from '../tasks.service';
5+
import { TasksServiceToken } from '../../../main';
56

67
@Component({
78
selector: 'app-tasks-list',
@@ -11,7 +12,7 @@ import { TasksService } from '../tasks.service';
1112
imports: [TaskItemComponent],
1213
})
1314
export class TasksListComponent {
14-
private tasksService = inject(TasksService);
15+
private tasksService = inject(TasksServiceToken);
1516
selectedFilter = signal<string>('all');
1617
tasks = computed(() => {
1718
switch (this.selectedFilter()) {

09-services-deep-dive/src/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { AppComponent } from './app/app.component';
44
import { TasksService } from './app/tasks/tasks.service';
55
import { InjectionToken } from '@angular/core';
66

7-
const TasksServiceToken = new InjectionToken('task-service-token')
7+
export const TasksServiceToken = new InjectionToken<TasksService>('task-service-token')
88

99
bootstrapApplication(AppComponent, {
1010
providers: [{

0 commit comments

Comments
 (0)