Угловой, как сделать несколько открывать и закрывать - PullRequest
0 голосов
/ 24 января 2019

Я хочу сделать, если нажать, чтобы найти все тот же идентификатор.

и все идентификаторы isOpen вместе становятся истинными.

Как это сделать?

html

<div  *ngFor="let card of cards">
    <div class="open-close-container" (click)="test(card)">
      <div *ngIf="card.isOpen">test</div>
      <div *ngIf="!card.isOpen">shidsfsdfsdf<br>t</div>
    </div>
</div>

ts

 cards = [{name:'div1',id: 1,isOpen: false},{name:'div2',id: 1 ,isOpen: false},{name:'div1',id: 2,isOpen: false},{name:'div2',id: 3 ,isOpen: false}];

  test(q){
    console.log(q)
        q.isOpen = !q.isOpen
  }

Вот стекаблит

Ответы [ 2 ]

0 голосов
/ 24 января 2019

измените свой тест () на:

    test(c){
    for (let card in this.cards)
        if(cards[card].id == c.id)
            cards[card].isOpen = !cards[card].isOpen
}
0 голосов
/ 24 января 2019

В вашей функции test(q) измените q.isOpen = !q.isOpen на:

test(q){
    this.cards.filter((card) => q.id == card.id).map((q) =>{ q.isOpen = !q.isOpen});    
}

По сути, когда вы вызываете test(), массив карт фильтруется с совпадающим id, и только эти объекты изменяются на q.isOpen = !q.isOpen.

Вот модифицированный stackblitz .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...