Как определить начало и конец мат-степпера в Angular? - PullRequest
1 голос
/ 01 апреля 2020

В настоящее время у меня есть вертикальный коврик-степпер. он заполняет шаги, используя * ngFor.

<mat-step [stepControl]="firstFormGroup" *ngFor="let stream of selectedStreamList; let indexOfelement = index;">

Итак, я хочу определить начало этого и последующее использование его в качестве переменной. В настоящее время я использую переменную в качестве счетчика. Я увеличиваю и уменьшаю его, чтобы определить шаг мата. но я хочу хорошее решение, что это. Так есть ли кто-нибудь, кто может помочь мне в этом вопросе?

1 Ответ

0 голосов
/ 01 апреля 2020

Mat-stepper генерирует событие selectionChange каждый раз, когда изменяется шаг. Вы можете подписаться на эти изменения внутри вашего машинописного файла и соответственно обработать ... что-то вроде этого.

//app.component.ts

import { Component, ViewChild, AfterViewInit } from "@angular/core";
import { MatStepper } from "@angular/material/stepper";
import { StepperSelectionEvent } from "@angular/cdk/stepper";
import { pluck } from "rxjs/operators";

@Component({
  selector: "app-root",
  template: `
    <mat-vertical-stepper #stepper>
      <mat-step
        *ngFor="let stream of selectedStreamList; let indexOfelement = index"
      ></mat-step>
    </mat-vertical-stepper>
  `
})
export class AppComponent implements AfterViewInit {
  @ViewChild("stepper", { static: false }) private stepper: MatStepper;

  selectedStreamList = [1, 2, 3, 4];
  isAtStart: boolean;
  isAtEnd: boolean;

  constructor() {}

  ngAfterViewInit() {
    this.stepper.selectionChange
      .pipe(pluck("selectedIndex"))
      .subscribe((res: number) => {
        this.isAtStart = res === 0;
        this.isAtEnd = res === this.selectedStreamList.length - 1;
      });
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...