将Angular2中的数据传递给子组件

将Angular2中的数据传递给子组件,angular,components,Angular,Components,您好,我在将数据从父组件传递到子组件控制器时遇到了一个小问题 这是我的父组件的标记代码parent.Component.html 我在控制台中得到了一个未定义的数据,但为什么?可能是异步问题,因为您似乎是从json获取数据,json可能是通过http或其他方式获取的。未定义的错误可能是由于在实际检索数据之前呈现视图,这将引发未定义的错误 尝试设置一个条件,即子组件在实际具有值之前不会被渲染: <element *ngIf="value" [mydata]="value"></

您好,我在将数据从父组件传递到子组件控制器时遇到了一个小问题

这是我的父组件的标记代码
parent.Component.html


我在控制台中得到了一个未定义的数据,但为什么?

可能是异步问题,因为您似乎是从json获取数据,json可能是通过http或其他方式获取的。未定义的错误可能是由于在实际检索数据之前呈现视图,这将引发未定义的错误

尝试设置一个条件,即子组件在实际具有值之前不会被渲染:

<element *ngIf="value" [mydata]="value"></element>

希望这有帮助

Value
是从Ajax填充的吗?不,这对我来说是有效的
{{Value}
但是我如何在构造函数中使用这个变量呢?为什么要在构造函数中获取
Value
。。您应该使用lifecycle事件…在我从构造函数加载JSON时,我需要一个不同的jsonfilename。因此,我将通过组件传递文件名。
<element *ngIf="value" [mydata]="value"></element>
import { Component, OnInit, Input } from '@angular/core';

@Component({
    selector: 'element',
    templateUrl: './element.component.html',
    styleUrls: ['./element.component.scss'],
})


export class ElementComponent implements OnInit {

@Input() public mydata:string;

  ngOnInit() {
    console.log(this.mydata);
  }
}