【发布时间】:2017-09-06 14:14:17
【问题描述】:
我试图在从父组件接收数据后显示子组件。 我已经做了这个步骤:
- 我已经在父 html 页面中声明了组件选择器。
-
将数据从父组件发送到子组件
Show(text: string)方法:private text: string; Show (text: string){ this.text = text; } 之后我在子组件中插入
*ngIf="text"for div,以便仅在我的组件收到数据时显示数据。
但是当我调用子组件的 show 方法时,text 变量为空,并且我的子组件不显示。我认为这是因为我的父 html 页面中的子组件选择器创建了一个新的对象实例,它有一个空的 text 值。我怎么能解决这个问题?
更新
我正在尝试使用@Input。它正在工作。但是为字符串工作。我如何向输入发送一些类实例?
【问题讨论】:
-
从父级向子级发送数据应该使用@Input 而不是使用方法
-
在模板中:
[text]="text在子中:@Input text: string; -
你可以在你的组件中添加一个布尔值
isLoaded,初始化false,使用*ngIf这个布尔值,然后在你做this.text = text之后将它设置为true -
证明问题的 plunkr 会很有帮助
标签: javascript angular