Angular 선형 진행 구성요소 개요

    Ignite UI for Angular 선형 진행 막대 표시기 구성 요소는 애플리케이션의 프로세스가 변경될 때 시각적으로 표시합니다. 표시기는 상태가 변경되면 모양이 업데이트됩니다. 표시기는 스트라이프 또는 단색 중에서 원하는 색상으로 스타일을 지정할 수 있습니다.

    Angular Linear Progress Example

    Getting Started with Ignite UI for Angular Linear Progress

    Ignite UI for Angular 선형 진행 구성 요소를 시작하려면 먼저 Ignite UI for Angular 설치해야 합니다. 기존 Angular 애플리케이션에서 다음 명령을 입력합니다.

    ng add igniteui-angular
    

    Ignite UI for Angular에 대한 전체 소개를 보려면 시작하기 항목을 읽어보세요.

    다음 단계는 IgxProgressBarModule에서 app.module.ts 파일:

    // app.module.ts
    
    ...
    import { IgxProgressBarModule } from 'igniteui-angular';
    // import { IgxProgressBarModule } from '@infragistics/igniteui-angular'; for licensed package
    
    @NgModule({
        ...
        imports: [..., IgxProgressBarModule],
        ...
    })
    export class AppModule {}
    

    또는 16.0.0부터 IgxLinearProgressBarComponent를 독립 실행형 종속성으로 가져오거나 IGX_LINEAR_PROGRESS_BAR_DIRECTIVES 토큰을 사용하여 구성 요소와 모든 지원 구성 요소 및 지시어를 가져올 수 있습니다.

    // home.component.ts
    
    import { IGX_LINEAR_PROGRESS_BAR_DIRECTIVES } from 'igniteui-angular';
    // import { IGX_LINEAR_PROGRESS_BAR_DIRECTIVES } from '@infragistics/igniteui-angular'; for licensed package
    
    @Component({
        selector: 'app-home',
        template: '<igx-linear-bar [value]="progress"></igx-linear-bar>',
        styleUrls: ['home.component.scss'],
        standalone: true,
        imports: [IGX_LINEAR_PROGRESS_BAR_DIRECTIVES]
        /* or imports: [IgxLinearProgressBarComponent] */
    })
    export class HomeComponent {
        public progress = 50;
    }
    

    이제 Ignite UI for Angular 가져왔으므로 igx-linear-bar 구성 요소 사용을 시작할 수 있습니다.

    Using the Angular Linear Progress

    모든 것이 어떻게 작동하는지 더 잘 이해하기 위해 데모에 있는 것과 같은 간단한 예를 만들어 보겠습니다.

    <igx-linear-bar [value]="100"></igx-linear-bar>
    

    그런 다음 브라우저에 데모 샘플이 표시됩니다.

    Progress Types

    type 속성을 사용하여 바의 유형을 설정할 수 있습니다. 선형 진행률 표시줄에는 default, error, success, infowarning의 5가지 유형이 있습니다.

    Striped Progress

    striped 속성을 사용하고 이를 true로 설정하여 막대를 줄무늬로 만들 수 있습니다.

    스트라이프 여부에 관계없이 다양한 유형의 진행률 표시줄을 만드는 방법을 살펴보겠습니다.

    <div class="linear-container">
        <igx-linear-bar [value]="100" type="default"></igx-linear-bar>
        <igx-linear-bar [value]="100" type="success" [striped]="true"></igx-linear-bar>
        <igx-linear-bar [value]="100" type="error"></igx-linear-bar>
        <igx-linear-bar [value]="100" type="info" [striped]="true"></igx-linear-bar>
        <igx-linear-bar [value]="100" type="warning"></igx-linear-bar>
    </div>
    

    따라서 모든 것을 올바르게 설정했다면 브라우저에 다음이 표시되어야 합니다.

    Indeterminate Progress

    정확하게 결정되지 않은 프로세스를 추적하려면 indeterminate 입력 속성을 true로 설정하면 됩니다.

    Animation Duration

    animationDuration 입력 속성은 애니메이션 주기에 걸리는 시간을 지정하는 데 사용됩니다.

    다음 예제에서는 애니메이션 지속 시간을 5초로 지정합니다.

    <igx-linear-bar [striped]="false" [value]="100" [animationDuration]="5000"></igx-linear-bar>
    

    Text Properties

    textAlign 속성을 사용하여 텍스트를 정렬할 수 있습니다. 허용되는 값은 left, centerright 입니다.

    텍스트를 숨기려면 textVisibility 속성을 사용하고 해당 값을 false로 설정하세요.

    막대 위로 텍스트를 이동하려면 textTop 속성을 true로 설정합니다.

    text 속성을 사용하여 텍스트 자체의 값을 사용자 정의할 수 있습니다.

    앞서 언급한 텍스트 속성을 사용하여 이전 샘플을 업데이트해 보겠습니다. 또한 믹스에 불확실한 진행률 표시줄이 표시됩니다.

    <div class="linear-container">
        <igx-linear-bar
            type="default"
            [value]="100"
        ></igx-linear-bar>
        <igx-linear-bar
            type="success"
            [value]="100"
            class="indeterminate"
            [indeterminate]="true"
            [striped]="true"
        ></igx-linear-bar>
        <igx-linear-bar
            type="error"
            [value]="100"
            [textAlign]="positionEnd"
            [text]="'Custom text'"
        ></igx-linear-bar>
        <igx-linear-bar
            type="info"
            [value]="100"
            [textVisibility]="false"
            [striped]="true"
        ></igx-linear-bar>
        <igx-linear-bar
            type="warning"
            [value]="100"
            [textTop]="true"
        ></igx-linear-bar>
    </div>
    

    그리고 가져오는 것을 잊지 마세요. IgxTextAlign 사용하는 경우 구성 요소의 열거자 textAlign 재산.

    import { ..., IgxTextAlign } from 'igniteui-angular';
    // import { ..., IgxTextAlign } from '@infragistics/igniteui-angular'; for licensed package
    ...
    
    public positionCenter: IgxTextAlign = IgxTextAlign.CENTER;
    public positionEnd: IgxTextAlign = IgxTextAlign.END;
    

    이것이 어떻게 밝혀졌는지 살펴보겠습니다.

    Note

    step 입력 값이 정의되지 않은 경우 진행률 업데이트는 max 값의 1% 입니다. 진행 속도를 더 빠르게 하려면 step 값이 (max * 1%)보다 커야 하며, 진행 속도가 느린 경우 step 기본 진행률 업데이트보다 작아야 합니다.

    Note

    step 값이 입력 value 보다 크게 정의된 경우 진행 업데이트에 전달된 값을 가져오는 업데이트가 하나만 있습니다.

    Dynamic Progress

    버튼과 같은 외부 컨트롤을 사용하여 진행률 표시줄의 값을 동적으로 변경할 수 있습니다. 이를 달성하기 위해 값을 클래스 속성에 바인딩할 수 있습니다.

    <div class="linear-container">
        <igx-linear-bar
            [value]="currentValue"
            [max]="100"
        ></igx-linear-bar>
    
        <div class="button-container">
            <button igxIconButton="flat" (click)="decrementProgress()">
                <igx-icon fontSet="material">remove</igx-icon>
            </button>
            <button igxIconButton="flat" (click)="incrementProgress()">
                <igx-icon fontSet="material">add</igx-icon>
            </button>
        </div>
    </div>
    

    값을 증가 및 감소시키는 메소드를 작성하십시오.

    public currentValue: number;
    
    public ngOnInit() {
        this.currentValue = 0;
    }
    
    public incrementProgress() {
        this.currentValue += 10;
        if (this.currentValue > 100) {
            this.currentValue = 100;
        }
    }
    
    public decrementProgress() {
        this.currentValue -= 10;
        if (this.currentValue < 0) {
            this.currentValue = 0;
        }
    }
    

    위 단계를 완료한 후 진행률 표시줄은 다음과 같아야 합니다.

    스타일링

    선형 진행률 표시줄 스타일 지정을 시작하려면 모든 테마 기능과 구성 요소 믹스인이 있는 index 파일을 가져와야 합니다.

    @use "igniteui-angular/theming" as *;
    
    // IMPORTANT: Prior to Ignite UI for Angular version 13 use:
    // @import '~igniteui-angular/lib/core/styles/themes/index';
    

    가장 간단한 접근 방식에 따라 progress-linear-theme 확장하고 $track-color, $fill-color-default$text-color 매개변수를 허용하는 새로운 테마를 만듭니다.

    $custom-theme: progress-linear-theme(
        $track-color: #D3D3D3,
        $fill-color-default: #ECAA53,
        $text-color: #ECAA53
    );
    

    Including Themes

    마지막 단계는 애플리케이션에 구성 요소 테마를 포함하는 것입니다.

    $legacy-support​ ​true로 설정된 경우 다음과 같은 구성 요소 테마를 포함합니다.

     @include progress-linear($custom-theme);
    
    Note

    구성 요소가 Emulated ViewEncapsulation을 사용하는 경우::ng-deep 사용하여 이 캡슐화를 penetrate 해야 합니다.

    :host {
         ::ng-deep {
            @include progress-linear($custom-theme);
        }
    }
    

    $legacy-support​ ​false (기본값)로 설정된 경우 다음과 같은 구성 요소 CSS 변수를 포함합니다.

    @include css-vars($custom-theme);
    
    Note

    구성 요소가 Emulated ViewEncapsulation을 사용하는 경우 변수를 재정의하려면 전역 선택기가 필요하므로 여전히:host 사용해야 합니다.

    :host {
        @include css-vars($custom-theme);
    }
    

    Demo

    API