Skip to content

Commit a959a4b

Browse files
author
Your Name
committed
NgRx - The Complete Guide
1 parent 4fec0d5 commit a959a4b

File tree

4 files changed

+35
-13
lines changed

4 files changed

+35
-13
lines changed

src/app/courses/courses-card-list/courses-card-list.component.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {Course} from "../model/course";
33
import { MatDialog, MatDialogConfig } from "@angular/material/dialog";
44
import {EditCourseDialogComponent} from "../edit-course-dialog/edit-course-dialog.component";
55
import {defaultDialogConfig} from '../shared/default-dialog-config';
6+
import {CourseEntityService} from '../services/course-entity.service';
67

78
@Component({
89
selector: 'courses-card-list',
@@ -18,7 +19,8 @@ export class CoursesCardListComponent implements OnInit {
1819
courseChanged = new EventEmitter();
1920

2021
constructor(
21-
private dialog: MatDialog ) {
22+
private dialog: MatDialog,
23+
private courseService: CourseEntityService) {
2224
}
2325

2426
ngOnInit() {
@@ -43,6 +45,12 @@ export class CoursesCardListComponent implements OnInit {
4345

4446
onDeleteCourse(course:Course) {
4547

48+
this.courseService.delete(course)
49+
.subscribe(
50+
() => console.log("Delete completed"),
51+
err => console.log("Deleted failed", err)
52+
);
53+
4654

4755
}
4856

src/app/courses/courses.module.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@ export const coursesRoutes: Routes = [
4949

5050
const entityMetadata: EntityMetadataMap = {
5151
Course: {
52-
sortComparer: compareCourses
52+
sortComparer: compareCourses,
53+
entityDispatcherOptions: {
54+
optimisticUpdate: true
55+
}
5356
}
5457
};
5558

src/app/courses/edit-course-dialog/edit-course-dialog.component.ts

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {Course} from '../model/course';
44
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
55
import {Observable} from 'rxjs';
66
import {CoursesHttpService} from '../services/courses-http.service';
7+
import {CourseEntityService} from '../services/course-entity.service';
78

89
@Component({
910
selector: 'course-dialog',
@@ -26,7 +27,7 @@ export class EditCourseDialogComponent {
2627
private fb: FormBuilder,
2728
private dialogRef: MatDialogRef<EditCourseDialogComponent>,
2829
@Inject(MAT_DIALOG_DATA) data,
29-
private coursesService: CoursesHttpService) {
30+
private coursesService: CourseEntityService) {
3031

3132
this.dialogTitle = data.dialogTitle;
3233
this.course = data.course;
@@ -63,10 +64,26 @@ export class EditCourseDialogComponent {
6364
...this.form.value
6465
};
6566

66-
this.coursesService.saveCourse(course.id, course)
67-
.subscribe(
68-
() => this.dialogRef.close()
69-
)
67+
if (this.mode == 'update') {
68+
69+
this.coursesService.update(course);
70+
71+
this.dialogRef.close();
72+
}
73+
else if (this.mode == 'create' ) {
74+
75+
this.coursesService.add(course)
76+
.subscribe(
77+
newCourse => {
78+
79+
console.log("New Course",newCourse);
80+
81+
this.dialogRef.close();
82+
83+
}
84+
);
85+
86+
}
7087

7188

7289
}

src/app/courses/home/home.component.html

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,6 @@ <h2 class="title">All Courses</h2>
1414
<p>In Promo: {{promoTotal$ | async}}</p>
1515
</div>
1616

17-
<div class="spinner-container" *ngIf="!(loading$ | async )">
18-
19-
<mat-spinner></mat-spinner>
20-
21-
</div>
22-
2317
<mat-tab-group>
2418

2519
<mat-tab label="Beginners">

0 commit comments

Comments
 (0)