Вы разговариваете со своим ребенком через @Input()
и разговариваете с родителями по @Output
.
Например, вы получаете сообщение от ребенка, используя @Output
.
Вот ваш дочерний компонент.
import { Component} from '@angular/core';
@Component({
selector: 'app-child',
template: `
`,
styleUrls: ['./child.component.css']
})
export class ChildComponent implements AfterViewInit {
@Output() messageChanged: EventEmitter<string>();
message = 'Hola Mundo!';
constructor() {
this.messageChanged = new EventEmitter<string>();
}
ngAfterViewInit() {
this.messageChanged.next(this.message);
}
}
Вот как должен выглядеть ваш родитель.
import { Component } from '@angular/core';
@Component({
selector: 'app-parent',
template: `
Message: {{ message }}
<app-child (messageChanged)="onMessageChange($event)"></app-child>
`,
styleUrls: ['./parent.component.css']
})
export class ParentComponent {
constructor() { }
message:string;
onMessageChange(message: string) {
this.message = message;
}
}
Поскольку номер месяца основан на нуле, а не на основе.
new Date ("2009", "04", "30")
создает объект Date
для 30-го числа мая , а не 30-го апреля.
(Причина почему он основан на нуле, вероятно, является историческим, то есть он ведет себя так же, как какой-то метод в другой системе, во времени ...)