父子组件通@Input
来源:6-2 输入属性

慕田峪2064799
2017-06-14
我希望在父组件上有个按钮 当我点击按钮是 显示子组件 然后点击子组件 子组件隐藏 然后再次点击父组件上的按钮依然会显示子组件,
我在父组件是上定义了一个 变量 然后通过button 的click事件设置变量为block 然后通过Input 传给子组件 在子组件中使用ngOnchanges钩子改变子组件的display样式 结果是第一次是ok的然后第二次点击就没反应了 我也试过在DoCheck钩子中改变子组件样式都没成功
父组件主要代码如下
//ts文件
isshow:string;
show1(){
this.isshow = "block";
}
//html文件
<app-child [test1]="isshow"></app-child>
子组件中
//ts文件
@Input() test1:string;
ngOnChanges(changes) {
console.log(JSON.stringify(changes,null,2));
document.getElementById("tp").style.display = this.test1;
}
showw(){
this.test1 = "none";
document.getElementById("tp").style.display = this.test1;
}
//html文件
<p id="tp" (click)="showw()">
child works!
</p>
请问下 使用input 可以实现吗?
1回答
-
慕田峪2064799
提问者
2017-06-14
解决了 使用 @ViewChild 引用子组件的方法 搞定了
00
相似问题