angular6 material9.X取付


文書ディレクトリ
  • 記事参照
  • 取付
  • Materialのモジュールをすべて
  • 参照
  • 問題説明
  • 解決策
  • Materialコンポーネント
  • を使用
    記事リファレンス
  • https://pdf-lib.org/Home/Details/11816
  • https://www.jianshu.com/p/9e81ad972371

  • インストール
    cnpm install -S @angular/material @angular/cdk @angular/animations
    

    Materialのモジュールをすべて参照
    問題の説明
    Angular Materialが9.0にアップグレードされた後、 にアップグレードできないため
    解決策
  • は、Angular Materialのすべてのコンポーネント
  • を導入するモジュールmaterial.module.tsを作成する.
    import { ModuleWithProviders, NgModule} from "@angular/core";
    import { MAT_LABEL_GLOBAL_OPTIONS, MatNativeDateModule, MAT_DATE_LOCALE } from '@angular/material/core';
    import { MatIconRegistry } from '@angular/material/icon';
    import { MatAutocompleteModule } from '@angular/material/autocomplete';
    import { MatBadgeModule } from '@angular/material/badge';
    import { MatButtonModule } from '@angular/material/button';
    import { MatButtonToggleModule } from '@angular/material/button-toggle';
    import { MatCardModule } from '@angular/material/card';
    import { MatCheckboxModule } from '@angular/material/checkbox';
    import { MatChipsModule } from '@angular/material/chips';
    import { MatStepperModule } from '@angular/material/stepper';
    import { MatDatepickerModule } from '@angular/material/datepicker';
    import { MatDialogModule } from '@angular/material/dialog';
    import { MatExpansionModule } from '@angular/material/expansion';
    import { MatFormFieldModule } from '@angular/material/form-field';
    import { MatGridListModule } from '@angular/material/grid-list';
    import { MatIconModule } from '@angular/material/icon';
    import { MatInputModule } from '@angular/material/input';
    import { MatListModule } from '@angular/material/list';
    import { MatMenuModule } from '@angular/material/menu';
    import { MatPaginatorModule } from '@angular/material/paginator';
    import { MatProgressBarModule } from '@angular/material/progress-bar';
    import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
    import { MatRadioModule } from '@angular/material/radio';
    import { MatRippleModule } from '@angular/material/core';
    import { MatSelectModule } from '@angular/material/select';
    import { MatSidenavModule } from '@angular/material/sidenav';
    import { MatSliderModule } from '@angular/material/slider';
    import { MatSlideToggleModule } from '@angular/material/slide-toggle';
    import { MatSnackBarModule } from '@angular/material/snack-bar';
    import { MatSortModule } from '@angular/material/sort';
    import { MatTableModule } from '@angular/material/table';
    import { MatTabsModule } from '@angular/material/tabs';
    import { MatToolbarModule } from '@angular/material/toolbar';
    import { MatTooltipModule } from '@angular/material/tooltip';
    import { MatTreeModule } from '@angular/material/tree';
    
    @NgModule({
        imports: [
            MatAutocompleteModule,
            MatBadgeModule,
            MatButtonModule,
            MatButtonToggleModule,
            MatCardModule,
            MatCheckboxModule,
            MatChipsModule,
            MatStepperModule,
            MatDatepickerModule,
            MatDialogModule,
            MatExpansionModule,
            MatFormFieldModule,
            MatGridListModule,
            MatIconModule,
            MatInputModule,
            MatListModule,
            MatMenuModule,
            MatPaginatorModule,
            MatProgressBarModule,
            MatProgressSpinnerModule,
            MatRadioModule,
            MatRippleModule,
            MatSelectModule,
            MatSidenavModule,
            MatSliderModule,
            MatSlideToggleModule,
            MatSnackBarModule,
            MatSortModule,
            MatTableModule,
            MatTabsModule,
            MatToolbarModule,
            MatTooltipModule,
            MatTreeModule,
            MatNativeDateModule
        ],
        exports: [
            MatAutocompleteModule,
            MatBadgeModule,
            MatButtonModule,
            MatButtonToggleModule,
            MatCardModule,
            MatCheckboxModule,
            MatChipsModule,
            MatStepperModule,
            MatDatepickerModule,
            MatDialogModule,
            MatExpansionModule,
            MatFormFieldModule,
            MatGridListModule,
            MatIconModule,
            MatInputModule,
            MatListModule,
            MatMenuModule,
            MatPaginatorModule,
            MatProgressBarModule,
            MatProgressSpinnerModule,
            MatRadioModule,
            MatRippleModule,
            MatSelectModule,
            MatSidenavModule,
            MatSliderModule,
            MatSlideToggleModule,
            MatSnackBarModule,
            MatSortModule,
            MatTableModule,
            MatTabsModule,
            MatToolbarModule,
            MatTooltipModule,
            MatTreeModule,
            MatNativeDateModule
        ],
        providers: [     
        ]
    })
    export class MaterialModule {
        constructor(public matIconRegistry: MatIconRegistry) {
            // matIconRegistry.registerFontClassAlias('fontawesome', 'fa');
        }
    
        static forRoot(): ModuleWithProviders {
            return {
                ngModule: MaterialModule,
                providers: [MatIconRegistry]
            };
        }
    }
    
  • 工事モジュールにおいてmaterial.module.ts
  • に導入する.
    import { BrowserModule } from '@angular/platform-browser';
    import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
    import { NgModule } from '@angular/core';
    //            
    import { FormsModule }   from '@angular/forms';
    //   HTTP     
    import {HttpClientModule} from '@angular/common/http';
    import { AppRoutingModule } from './app-routing.module';
    import { AppComponent } from './app.component';
    import { MaterialModule } from './material.module';
    
    @NgModule({
      declarations: [
        AppComponent,
      ],
      imports: [
        MaterialModule,
        HttpClientModule,
        FormsModule,
        BrowserModule,
        BrowserAnimationsModule,
        AppRoutingModule
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }
    

    注意:Materialにはいくつかの効果があるため、BrowserAnimationsModuleモジュールを導入する必要があります.
  • css style.scssファイルにmaterialを導入するデフォルトUIスタイル
  • @import "~@angular/material/prebuilt-themes/indigo-pink.css";
    

    Materialコンポーネントの使用
    <div class="single-choice">
        <div class="single-choice--question">{{questionObj.questionStem}}div>
        <mat-radio-group class="single-choice--radio-group" [(ngModel)]="favoriteSeason">
            <mat-radio-button class="single-choice--radio-button" *ngFor="let answerObj of questionObj.hisOptionList" [value]="answerObj.optionNo">
                {{answerObj.optionDetails}}
            mat-radio-button>
        mat-radio-group>
    div>