Skip to content

Commit 8443f03

Browse files
author
Your Name
committed
Angular Core Deep Dive Course
1 parent 88743e4 commit 8443f03

File tree

7 files changed

+45
-33
lines changed

7 files changed

+45
-33
lines changed

package-lock.json

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"express": "^4.16.3",
3030
"rxjs": "^6.3.3",
3131
"zone.js": "~0.8.26",
32-
"document-register-element": "^1.7.2"
32+
"document-register-element": "1.8.1"
3333
},
3434
"devDependencies": {
3535
"@angular-devkit/build-angular": "~0.10.0",

src/app/app.component.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
import {ChangeDetectionStrategy, ChangeDetectorRef, Component, DoCheck, Inject, OnInit} from '@angular/core';
1+
import {ChangeDetectionStrategy, ChangeDetectorRef, Component, DoCheck, Inject, Injector, OnInit} from '@angular/core';
22
import {Course} from './model/course';
33
import {Observable} from 'rxjs';
44
import {AppConfig, CONFIG_TOKEN} from './config';
55
import {COURSES} from '../db-data';
66
import {CoursesService} from './courses/courses.service';
7+
import {createCustomElement} from '@angular/elements';
8+
import {CourseTitleComponent} from './course-title/course-title.component';
79

810

911
@Component({
@@ -19,13 +21,16 @@ export class AppComponent implements OnInit {
1921

2022
constructor(
2123
private coursesService: CoursesService,
22-
@Inject(CONFIG_TOKEN) private config: AppConfig) {
24+
@Inject(CONFIG_TOKEN) private config: AppConfig,
25+
private injector: Injector) {
2326

2427
}
2528

2629
ngOnInit() {
2730

28-
const htmlElement = createCustomElement();
31+
const htmlElement = createCustomElement(CourseTitleComponent, {injector:this.injector});
32+
33+
customElements.define('course-title', htmlElement);
2934

3035
}
3136

src/app/app.module.ts

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
1-
import{ BrowserModule } from '@angular/platform-browser';
2-
import { NgModule } from '@angular/core';
1+
import {BrowserModule} from '@angular/platform-browser';
2+
import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';
33

4-
import { AppComponent } from './app.component';
5-
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
4+
import {AppComponent} from './app.component';
5+
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
66
import {HttpClientModule} from '@angular/common/http';
77
import {CoursesModule} from './courses/courses.module';
8-
import { CourseTitleComponent } from './course-title/course-title.component';
8+
import {CourseTitleComponent} from './course-title/course-title.component';
99

1010
@NgModule({
11-
declarations: [
12-
AppComponent,
13-
CourseTitleComponent
14-
],
15-
imports: [
16-
BrowserModule,
17-
BrowserAnimationsModule,
18-
HttpClientModule,
19-
CoursesModule
20-
],
21-
providers: [],
22-
bootstrap: [AppComponent]
11+
declarations: [
12+
AppComponent,
13+
CourseTitleComponent
14+
],
15+
imports: [
16+
BrowserModule,
17+
BrowserAnimationsModule,
18+
HttpClientModule,
19+
CoursesModule
20+
],
21+
providers: [],
22+
bootstrap: [AppComponent],
23+
entryComponents: [CourseTitleComponent]
2324
})
24-
export class AppModule { }
25+
export class AppModule {
26+
27+
}

src/app/course-title/course-title.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {Component, Input, OnInit} from '@angular/core';
1+
import {Component, CUSTOM_ELEMENTS_SCHEMA, Input, OnInit} from '@angular/core';
22

33
@Component({
44
selector: 'course-title',

src/app/courses/course-card/course-card.component.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<div class="course-card" *ngIf="course" #container>
22

33
<div class="course-title">
4-
{{ cardIndex || '' + ' ' + course.description }}
4+
5+
{{ cardIndex || '' + ' ' + course.description }}
6+
57
</div>
68

79
<ng-content select="course-image"

src/app/courses/courses.module.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { NgModule } from '@angular/core';
1+
import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';
22
import { CommonModule } from '@angular/common';
33
import {CourseCardComponent} from './course-card/course-card.component';
44
import {CourseImageComponent} from './course-image/course-image.component';
@@ -7,6 +7,7 @@ import {HighlightedDirective} from './directives/highlighted.directive';
77
import {NgxUnlessDirective} from './directives/ngx-unless.directive';
88
import {HttpClientModule} from '@angular/common/http';
99
import {FilterByCategoryPipe} from './filter-by-category.pipe';
10+
import {CourseTitleComponent} from '../course-title/course-title.component';
1011

1112
@NgModule({
1213
imports: [
@@ -24,6 +25,7 @@ import {FilterByCategoryPipe} from './filter-by-category.pipe';
2425
CourseImageComponent,
2526
FilterByCategoryPipe
2627
],
27-
providers: [CoursesService]
28+
providers: [CoursesService],
29+
schemas: [CUSTOM_ELEMENTS_SCHEMA]
2830
})
2931
export class CoursesModule { }

0 commit comments

Comments
 (0)