我实际上正在使用* ngFor重复一个选择器而且我还要向子组件发送一些数据请看下面的代码:
<app-piegraph *ngFor="let studentData of studentData" [studentData]="studentData"></app-piegraph>
父组件:
studentData = {first: "harish",second: "santhu"}
子组件:
export class PiegraphComponent implements OnInit{
@Input('studentData') testObj;
constructor(){
console.log(this.testObj); //Getting undefined error message here
}
}
我的studentData中只有一个对象因此我不想重复数据,我只是想将studentData对象发送到我的子组件而不使用* ngFor
这可能吗?
答案 0 :(得分:2)
由于您的studentData
是一个数组,并且您确定它只有一个对象,您可以这样做:
<app-piegraph [studentData]="studentData[0]"></app-piegraph>
这里我们需要记住在父组件中初始化数组,这样我们就不会在数组上出现undefined
错误。
此外,您正尝试在构造函数中控制日志{child}中的@Input
值,此时@Input
值尚不可用。这可以通过将控制台日志移动到OnInit
:
export class PiegraphComponent implements OnInit{
@Input('studentData') testObj;
constructor(){ }
ngOnInit() {
console.log(this.testObj);
}
}