>>ng g c parent
CREATE src/app/parent/parent.component.html (25 bytes)
CREATE src/app/parent/parent.component.spec.ts (628 bytes)
CREATE src/app/parent/parent.component.ts (269 bytes)
CREATE src/app/parent/parent.component.css (0 bytes)
UPDATE src/app/app.module.ts (680 bytes)
>>ng g c child
CREATE src/app/child/child.component.html (24 bytes)
CREATE src/app/child/child.component.spec.ts (621 bytes)
CREATE src/app/child/child.component.ts (265 bytes)
CREATE src/app/child/child.component.css (0 bytes)
UPDATE src/app/app.module.ts (758 bytes)
===== Parent Component =====
==== parent.component.ts ====
Here we create two variable that will be passed to the child component, and a function onChildButtonClicked() function that will be called when the child's button is clicked.
import {Component, OnInit} from '@angular/core';
@Component({
selector: 'app-parent',
templateUrl: './parent.component.html',
styleUrls: ['./parent.component.css']
})
export class ParentComponent implements OnInit {
iChildButtonClickedTime: number = 0;
myString: string = "myString";
myNumber: number = 1000;
constructor() {
}
ngOnInit() {
}
onChildButtonCLicked($event: number) {
this.iChildButtonClickedTime = $event
}
}
==== parent.component.html ====
The import part here is we bind myString, and myNumber to
Child component clicked times: {{iChildButtonClickedTime}}
===== Child Component =====
==== child.component.ts ====
Here, we see the @Input and @Output decorations, which mapped in parent's html file. So, when this child component is created, the @Input values have already been set. Likewise, the output emitted is also be bind on create.
import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
@Component({
selector: 'app-child',
templateUrl: './child.component.html',
styleUrls: ['./child.component.css']
})
export class ChildComponent implements OnInit {
iNumOfClick: number = 0;
@Input() inputString: string;
@Input() inputNumber: number;
@Output() toParentEmitter = new EventEmitter();
constructor() {
}
ngOnInit() {
}
onButtonClicked() {
this.iNumOfClick++;
this.toParentEmitter.emit(this.iNumOfClick);
}
}
==== child.component.html ====
The number pass from parent is {{inputNumber}}
The string pass from parent is {{inputString}}