单击事件隐藏2个成分角4



我有1个root component at 3 sub-componeNet,我在其中放了一些@input以获取单击事件,然后将它们成功地调用到视图中,所以当我单击我想要的根时,要打开一个子组件(这很好(,但与此同时,我希望另外两个从视图中消失,依此类推,依此类推,但分别(一种div.hidden(...如果您需要更多代码或更多代码或解释不要犹豫。...预先感谢

这是我的root component.html:

    <div class="daydetail">
    <h1>Detail of day</h1>
 <button pButton class="daydetail" type="button" icon="fa-chevron-up" label="Click"(click)="toggleChild()"></button>
     <div>
         <my-daydetail [showMePartially]="showVar"></my-daydetail>
    </div>
</div>
<div class="dailyreport">
    <h1>Daily</h1>
    <my-dailyreport></my-dailyreport>
</div> 
<div class="inventory">
    <my-inventory></my-inventory>
</div> 

这是我的root component.ts:

export class AppliV2Component   {
   showVar = false;
   hideVar = true;
  constructor(public userService: UserService) {
    }
   toggleChild() {
       this.showVar = !this.showVar;
       this.hideVar = !this.hideVar;
       }
}

第一个孩子.html:

<div *ngIf="hideMePartially" class="dailyreport">
     <h1>Daily report</h1>
</div> <!-- Fin de dailyreport -->

first child.ts:

export class MyDailyreportComponent implements OnInit {

 @Input() hideMePartially: boolean;
  constructor() { }

第二个孩子.html:

<div *ngIf="showMePartially" class="daydetail2" > <!-- this part will be toggled by the parent component button  -->

<h1>Informations</h1>
</div>

第二个孩子:

  export class MyInventoryComponent implements OnInit {
      @Input() hideMePartially: boolean;

首先, *ngif不会隐藏/显示组件。它将添加/删除它。有区别。要隐藏组件,您应该使用[hidden]="true/false"

在您的情况下,您可以做类似的事情:

<div [hidden]="displayDetail" class="daydetail2" > 

,然后只需创建 displayDetail 组件打字稿中类型布尔值的变量。

之后,您可以轻松地创建切换方法来将 DisplayDetail 设置为True或False。

toggleDisplay(){
  this.displayDetail != this.displayDetail;
}

您可以在模板中调用该方法。

<button (click)="toggleDisplay();"> Toggle Button </button>

注意:可以覆盖[隐藏]的CSS,因此您可能需要将其添加到组件CSS

[hidden] { display: none !important;}

最新更新