Attributes 更改Angular 2中子组件的指令属性
我有一个具有以下指令的父组件Attributes 更改Angular 2中子组件的指令属性,attributes,angular,Attributes,Angular,我有一个具有以下指令的父组件。最初,与此指令关联的子组件是隐藏的,在发生一些事件后,我希望使其可见,因此我使用父组件中的按钮Show child来更改此属性 导出类应用程序{ 构造函数(){ 可见=假; } showMe(){ 可见=真实; } } 问题是,一旦显示了子组件,我需要在子组件中提供一个按钮Hide,以再次隐藏它: 导出类子组件{ 构造函数(private _元素:ElementRef,private _呈现器:呈现器){} 希德姆(){ 设el=该元素(元素nativeEleme
。最初,与此指令关联的子组件是隐藏的,在发生一些事件后,我希望使其可见,因此我使用父组件中的按钮Show child
来更改此属性
导出类应用程序{
构造函数(){
可见=假;
}
showMe(){
可见=真实;
}
}
问题是,一旦显示了子组件,我需要在子组件中提供一个按钮Hide
,以再次隐藏它:
导出类子组件{
构造函数(private _元素:ElementRef,private _呈现器:呈现器){}
希德姆(){
设el=该元素(元素nativeElement);
这个.u renderer.setElementStyle(el,‘可见性’、‘隐藏’);
}
}
我不确定这部分,但至少它是有效的。现在,如果我想再次更改子组件
指令的属性hidden
,该怎么办?调用showMe()不起作用,可能是因为应用的样式中存在某种优先级
正确的方法是什么
:首先单击“显示子对象”,然后单击“隐藏”,然后再次尝试单击“显示子对象”。上次单击的按钮不起作用
谢谢我不确定这是您想要的方法,但我认为它的行为如下所述:
@组件({
选择器:'子组件',
提供者:[],
主机:{'[隐藏]:'隐藏'},
模板:`
这就是那个孩子
隐藏
`,
})
导出类子组件{
@Input()隐藏:boolean=false;
}
秀给孩子看
示例中的问题是
hidden
属性和visibility:hidden
得到的值相互冲突。谢谢。在阅读了文档之后,我想我理解了你在做什么。唯一的问题是,我无法在不破坏其他内容的情况下启动隐藏的子组件。你有解决办法吗?我更新了我的答案。只需添加[hidden]=“true”
即可使其最初隐藏。当然:-)谢谢。顺便问一下,这是实现子组件和父组件之间通信的最直接的方法吗?您可以引用父组件中的字段(如示例中的可见字段),而不是引用模板变量#child
)。这是更常见的方法,但在本例中,仅在模板中使用直接引用似乎更直接。是输入:[“隐藏”]
<代码>输入:布尔=假与@Input()输入相同:boolean=false代码>只是一种不同的表达方式。您需要输入能够传递像`这样的值。我们可以为输入使用不同的名称,但我不认为有理由发明一个新名称。