Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度8组件更改和ngOnInit调用_Javascript_Angular_Typescript_Angular8 - Fatal编程技术网

Javascript 角度8组件更改和ngOnInit调用

Javascript 角度8组件更改和ngOnInit调用,javascript,angular,typescript,angular8,Javascript,Angular,Typescript,Angular8,我在一个主组件中有两个组件。都具有带有输入字段和跨距元素的窗体。设置用户使用“编辑”按钮编辑表单或使用“取消”按钮取消编辑。 因此,每当用户更改选项卡而不单击“取消”时,我需要取消“编辑状态关闭”。意味着一旦组件被更改或调用,就需要触发事件以使ecit状态为假。我什么都还没有得到。这似乎是个简单的问题 结构如下图所示 <accordion [isAnimated]="true"> <accordion-group heading="Basic Details">

我在一个主组件中有两个组件。都具有带有输入字段和跨距元素的窗体。设置用户使用“编辑”按钮编辑表单或使用“取消”按钮取消编辑。 因此,每当用户更改选项卡而不单击“取消”时,我需要取消“编辑状态关闭”。意味着一旦组件被更改或调用,就需要触发事件以使ecit状态为假。我什么都还没有得到。这似乎是个简单的问题

结构如下图所示

<accordion [isAnimated]="true">
<accordion-group heading="Basic Details">
    <div class="profiletab_detail_wrp">
        <app-basic-details></app-basic-details>
    </div>
</accordion-group>
<accordion-group heading="Address Details">
    <div class="profiletab_detail_wrp">
        <app-address-details></app-address-details>
    </div>
</accordion-group>

Ngx引导手风琴有一个名为isOpenChange的事件,每当手风琴被切换时就会被触发。所以,试试这样吧

HTML


您正在使用哪个库生成手风琴组?当前正在使用ngx引导5.2.0我已经修改了ngx引导的答案,请再试一次。@SandyB ngOnInit仅在组件第一次呈现时,或者当它被销毁并再次创建时才会被调用。与上述解决方案一起,您可以使用输入和输出装饰器来进行父级->子级/子级->父级通信。还可以使用ngOnSimpleChanges来监视输入的状态更改。或者,如果没有任何帮助,请创建一个stackblitz来纠正此问题。我将在实现“ngOnSimpleChanges”、输入和输出装饰器后对其进行更新。我已经实现了输入装饰器,并在ngonchanges中接收输入,现在它可以工作了。现在,每当用户在不取消编辑状态的情况下转到另一个选项卡,并返回到相同的零部件编辑状态时,都将关闭。但它只起作用一次。我不能重复这个过程。第二次没有电话进入ngOnChanges。现在我只做了父母->孩子。我想我还需要子->父事件。让我知道你的想法和想法queries@SandyB你能用最少的代码快速创建一个stackblitz来描述现在发生的问题吗?我相信,这件事可以在几分钟内解决。
<accordion [closeOthers]="oneAtATime"
   <accordion-group heading="Basic Details" (isOpenChange)="onBasicInfoToggle($event)">
       <div class="profiletab_detail_wrp">
           <app-basic-details></app-basic-details>
       </div>
   </accordion-group>
<accordion>
onBasicInfoToggle(event) {
  // Turn of the edit mode maybe like
  if(event === 'closed') {
      this.editMode = false;
  }
}