Skip to content

Commit fde527d

Browse files
author
Your Name
committed
Angular Core Deep Dive
1 parent 6b35d7c commit fde527d

19 files changed

+55
-61
lines changed

src/app/app.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import {ChangeDetectionStrategy, ChangeDetectorRef, Component, DoCheck, Inject, OnInit} from '@angular/core';
22
import {Course} from './model/course';
33
import {Observable} from 'rxjs';
4-
import {CoursesService} from './services/courses.service';
54
import {AppConfig, CONFIG_TOKEN} from './config';
65
import {COURSES} from '../db-data';
6+
import {CoursesService} from './courses/courses.service';
77

88

99
@Component({
1010
selector: 'app-root',
1111
templateUrl: './app.component.html',
12-
styleUrls: ['./app.component.css']
12+
styleUrls: ['./app.component.css'],
1313
})
1414
export class AppComponent implements OnInit {
1515

src/app/app.module.ts

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,20 @@
1-
import { BrowserModule } from '@angular/platform-browser';
1+
import{ BrowserModule } from '@angular/platform-browser';
22
import { NgModule } from '@angular/core';
33

44
import { AppComponent } from './app.component';
55
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
6-
import { CourseCardComponent } from './course-card/course-card.component';
7-
import { CourseImageComponent } from './course-image/course-image.component';
8-
import { HighlightedDirective } from './directives/highlighted.directive';
9-
import { NgxUnlessDirective } from './directives/ngx-unless.directive';
106
import {HttpClientModule} from '@angular/common/http';
7+
import {CoursesModule} from './courses/courses.module';
118

129
@NgModule({
1310
declarations: [
14-
AppComponent,
15-
CourseCardComponent,
16-
CourseImageComponent,
17-
HighlightedDirective,
18-
NgxUnlessDirective
11+
AppComponent
1912
],
2013
imports: [
2114
BrowserModule,
2215
BrowserAnimationsModule,
23-
HttpClientModule
16+
HttpClientModule,
17+
CoursesModule
2418
],
2519
providers: [],
2620
bootstrap: [AppComponent]

src/app/course-card/course-card.component.ts renamed to src/app/courses/course-card/course-card.component.ts

Lines changed: 4 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,17 @@ import {
1010
OnInit,
1111
Output
1212
} from '@angular/core';
13-
import {Course} from '../model/course';
14-
import {CoursesService} from '../services/courses.service';
13+
import {Course} from '../../model/course';
14+
import {CoursesService} from '../courses.service';
15+
1516

1617

1718
@Component({
1819
selector: 'course-card',
1920
templateUrl: './course-card.component.html',
2021
styleUrls: ['./course-card.component.css']
2122
})
22-
export class CourseCardComponent implements
23-
OnInit, OnDestroy, OnChanges,
24-
AfterContentChecked, AfterViewChecked,
25-
AfterContentInit, AfterViewInit, DoCheck {
23+
export class CourseCardComponent implements OnInit {
2624

2725
@Input()
2826
course: Course;
@@ -40,52 +38,14 @@ export class CourseCardComponent implements
4038
@Attribute('type') private type: string) {
4139

4240

43-
console.log('constructor', this.course);
44-
45-
}
46-
47-
ngOnChanges(changes) {
48-
49-
console.log('ngOnChanges', changes);
5041
}
5142

5243
ngOnInit() {
5344

54-
console.log('ngOnInit');
55-
56-
57-
}
58-
59-
ngDoCheck() {
60-
console.log("ngDoCheck");
61-
}
62-
63-
ngAfterContentInit() {
64-
console.log("ngAfterContentInit");
65-
}
6645

67-
ngAfterViewInit() {
68-
console.log("ngAfterViewInit");
6946
}
7047

7148

72-
ngAfterContentChecked() {
73-
74-
console.log('ngAfterContentChecked');
75-
76-
}
77-
78-
ngAfterViewChecked() {
79-
80-
console.log('ngAfterViewChecked');
81-
82-
}
83-
84-
ngOnDestroy() {
85-
86-
console.log('ngOnDestroy');
87-
88-
}
8949

9050
onTitleChanged(newTitle: string) {
9151

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { CoursesModule } from './courses.module';
2+
3+
describe('CoursesModule', () => {
4+
let coursesModule: CoursesModule;
5+
6+
beforeEach(() => {
7+
coursesModule = new CoursesModule();
8+
});
9+
10+
it('should create an instance', () => {
11+
expect(coursesModule).toBeTruthy();
12+
});
13+
});

src/app/courses/courses.module.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { NgModule } from '@angular/core';
2+
import { CommonModule } from '@angular/common';
3+
import {CourseCardComponent} from './course-card/course-card.component';
4+
import {CourseImageComponent} from './course-image/course-image.component';
5+
import {CoursesService} from './courses.service';
6+
import {HighlightedDirective} from './directives/highlighted.directive';
7+
import {NgxUnlessDirective} from './directives/ngx-unless.directive';
8+
9+
@NgModule({
10+
imports: [
11+
CommonModule
12+
],
13+
declarations: [
14+
CourseCardComponent,
15+
CourseImageComponent,
16+
HighlightedDirective,
17+
NgxUnlessDirective
18+
],
19+
exports: [
20+
CourseCardComponent,
21+
CourseImageComponent
22+
],
23+
providers: [CoursesService]
24+
})
25+
export class CoursesModule { }

src/app/services/courses.service.ts renamed to src/app/courses/courses.service.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ import {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';
66
let counter = 0;
77

88

9-
@Injectable({
10-
providedIn: 'root'
11-
})
9+
@Injectable()
1210
export class CoursesService {
1311

1412
id:number;

src/app/directives/highlighted.directive.ts renamed to src/app/courses/directives/highlighted.directive.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {Directive, EventEmitter, Host, HostBinding, HostListener, Input, Output} from '@angular/core';
2-
import {CoursesService} from '../services/courses.service';
2+
import {CoursesService} from '../courses.service';
3+
34

45
@Directive({
56
selector: '[highlighted]',

src/index.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
<link rel="icon" type="image/x-icon" href="favicon.ico">
1313
</head>
1414
<body>
15+
1516
<app-root></app-root>
17+
18+
1619
</body>
1720
</html>

0 commit comments

Comments
 (0)