簡體   English   中英

Angular 切換 boolean 變量來自位於 ngFor 內的同級組件

[英]Angular toggle boolean variable from sibling components located inside an ngFor

案例如下,一個ngFor渲染一個組件集合(app-item)。 每個組件都有一個名為“open”的 boolean 變量和一個名為“toggle”的 function,用於切換(真或假)變量。

如何單擊組件(應用程序項)的按鈕並更改剩余迭代同級項的 state?

app-page.component.html

<div *ngFor="let item of items">
  <app-item [data]="item"></app-item>
</div>

應用-item.component.html

<button (click)="toggle($event)">Toggle "open" variable.</button>
<div *ngIf="open">Content is now visible</div>

應用程序項.component.ts

export class ItemComponent {    
  open: boolean = false;

  toggle(event: any) {
     this.open = !this.open;
  }
}

我認為您有 3 個選項 1- 在 app-item-component 中使用 @output() 並向父組件發出事件,然后通過 @Input() 設置更改所有組件 state 2- 使用服務並在其中創建主題並訂閱在子組件中 3- 將屬性字段添加到您的項目 model 為 boolean 並在子組件或父組件中通過引用更改它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM