【发布时间】:2019-10-15 11:05:26
【问题描述】:
我的日历组件的数据属性装饰为@Input():
import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';
@Component({
selector: 'app-calendar',
templateUrl: './calendar.component.html',
styleUrls: ['./calendar.component.css']
})
export class CalendarComponent implements OnInit, OnChanges {
@Input() data: CalendarDay[];
constructor() {
this.data = [];
}
ngOnInit() {
this.initDays();
}
ngOnChanges(changes: SimpleChanges) {
console.log(this.data);
console.log(changes.data);
}
}
我像这样从另一个组件传入数据:
<app-calendar [data]="this.calendarData"></app-calendar>
并且传递的数据由日历组件中的*ngFor 渲染(渲染完美,一切正常):
<div *ngFor="let item of data">{{item.date}}</div>
我想先解析这些数据,然后再将其呈现到视图中,每当我尝试在日历组件中使用 console.log 数据属性时,我得到一个奇怪的数组,它显示为空,我可以从浏览器控制台“打开”它:
。
当我尝试像这样记录值时:
console.log(this.data[0])
或
console.log(changes.data.currentValue[0])
我得到undefined 值。
【问题讨论】:
-
您是否尝试过从构造函数中删除初始化?那不需要在那里。您应该避免在构造函数中放置依赖注入以外的任何内容。
标签: javascript angular typescript angular7