更新子级中的输入值,即使它在父级angular 2+;中保持不变;

更新子级中的输入值,即使它在父级angular 2+;中保持不变;,angular,Angular,我正在向子组件传递一个值,如下 像这样在孩子身上抓住它 @Input()prop1:boolean; 这是一个布尔值,当按下按钮时,该值在父对象中从false变为true。在子对象中,单击另一个按钮时,它会变回false 此时,如果我再次按下parent中的按钮,则不会发生任何事情。prop1的值在父级中仍然为真,因此未检测到任何更改,也未向子级发送任何内容。我理解这是预期的行为 但是,有没有办法再次强制将prop1的值推送到子级 编辑:在这种情况下,我可能需要双向数据绑定,但由于我没有在

我正在向子组件传递一个值,如下


像这样在孩子身上抓住它

@Input()prop1:boolean;
这是一个布尔值,当按下按钮时,该值在父对象中从false变为true。在子对象中,单击另一个按钮时,它会变回false

此时,如果我再次按下parent中的按钮,则不会发生任何事情。prop1的值在父级中仍然为真,因此未检测到任何更改,也未向子级发送任何内容。我理解这是预期的行为

但是,有没有办法再次强制将prop1的值推送到子级


编辑:在这种情况下,我可能需要双向数据绑定,但由于我没有在父级中实际使用prop1的值,因此,在子级中再次更新它的功能就足够了。

您必须将值从chld发送到父级,所以是双向绑定

在儿童时期

  @Output() booleanEmitter= new EventEmitter();

onButtonClick(){
    this.booleanEmitter.emit(this.prop1);
}
父母

<app-child-component (booleanEmitter)="getProp($event)"  [prop1]='prop1'></app-child-component>

getProp($event){
this.prop = $event as boolean
}

getProp($event){
this.prop=$event作为布尔值
}

好的,找到了一种没有双向数据绑定的方法

在父母中

。。。
在孩子身上

prop1:布尔型;
@输入()
set setProp(p:布尔值){
this.prop1=真;
}
因此,每次我单击父级中的按钮时,值都会更改,并且每次都会发送给子级。由于在父对象中单击按钮总是意味着子对象中的值必须为真,这就是我在set函数中所做的


编辑:该用例是一个模态对话框,模态位于子组件中。父级有打开模式的按钮,模式有关闭按钮。

要做到这一点,您需要使用双向角度绑定,请查看@ArunGopinathan。请参阅编辑说明。双向数据绑定可能是一种可行的方法,但如果有其他方法可以实现我所寻找的目标,那么在这种情况下我并不真正需要它。您可以使用
主题
通知子组件父组件的按钮已单击。感谢提供双向数据绑定示例。如果我找不到其他方法,我会用这个。当我没有真正使用父级中的数据时,使用双向数据绑定感觉是错误的。那么您可以使用服务这是否回答了问题?您在标题中指出父项中的值没有更改。我可能需要改写我的问题。我正在尝试从家长处发送按钮单击。父项中的值实际上并不重要您可能想要回答,这正好涉及到这个主题。