0
ヶdetail.component.html角度4 @Input()値が(ngOnInitに定義されていない)
import ...
@Component({
template: `{{month?.id}} <app-month-date [month]="month"></app-month-date>`
})
export class MonthDetailComponent implements OnInit {
month: Month;
ngOnInit(): void {
this.route.params
.switchMap((params: Params) => this.monthService.getMonth(+params["id"]))
.subscribe(month => (this.month = month));
}
}
ヶdate.component.html
<p>month-date works! {{month?.id}}</p>
月-date.component.ts
import { Component, OnInit, Input } from "@angular/core";
import { Month } from "app/attendance/month";
@Component({
selector: "app-month-date",
...
})
export class MonthDateComponent implements OnInit {
@Input() month: Month;
ngOnInit() {
//undefined --- here
console.log(this.month);
}}
月?.idはmonth-detail.component.html
に正しく表示されますが、月はapp-month-date
のタグがmonth-date.component.ts
で定義されていません。 ngOnInitで値を取得できない場合がありますか?月の入力値がそれに送られる前に、子コンポーネントを確保することによってこの問題を解決することができます
それはngOnInitが前ティガーます未定義の原因だうん月が設定されます。この場合、** ngOnChanges ** – Swoox
を使用したいと思うのですがなぜ 'month.id'の代わりに' month?id'があるのか考えてみたら、その答えは明らかになります。 –