Как вызвать нажатие на кнопки, исходящие из цикла, одним нажатием одной кнопки

#javascript #angular

Вопрос:

У меня есть 3 секции, исходящие из цикла. Также у меня есть 3 кнопки. Здесь мне нужно показать только первый раздел («один») по умолчанию, и первая кнопка должна быть активна/отключена.Когда я нажимаю вторую кнопку, должен отображаться только второй раздел, а вторая кнопка должна быть активна/отключена..и так далее.До сих пор работал нормально.Но у меня также есть кнопка «вниз», при нажатии на которую кнопка click2 будет триггером, снова при нажатии кнопки «вниз» кнопка click3 будет триггером.Вот код ниже

app.component.html

 <hello name="{{ name }}"></hello>
<p>
  Start editing to see some magic happen :)
</p>
<div *ngFor="let data of testJson">
  <div *ngIf="data.id==button_selected">
    {{data.name}}
  </div>

</div>

<div style="margin-top:10px">
  <button *ngFor="let data of testJson"
  style="display:block"
  (click)="button_selected=data.id"
  [disabled]="button_selected==data.id"
  >
    click {{data.id}}
  </button>
</div><br>
<div><button>Down arrow</button></div>
 

приложение.компонент.ts

 import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  button_selected = 1;
  testJson = [
    {
      id: 1,
      name: 'one'
    },
    {
      id: 2,
      name: 'two'
    },
    {
      id: 3,
      name: 'three'
    }
  ];
  name = 'Angular';
  ngOnInit() {}
}
 

Ответ №1:

Добавьте этот метод в свой app.component.ts .

   down() {
    if (this.button_selected < this.testJson.length) {
      this.button_selected  ;
    }
  }
 

и измените кнопку со стрелкой вниз, как показано ниже.

 <div><button (click)="down()">Down arrow</button></div>
 

Это образец стекблитца.

Комментарии:

1. Тот же ответ, что и у меня, плюс вы прошли лишнюю милю, проверяя, можно ли активировать следующий раздел. Поднимите голос

Ответ №2:

Просто так

 <button (click)="button_selected  ">Down arrow</button>
 

Это активирует следующий раздел при каждом нажатии этой кнопки.