创建 Angular Material 标准组件结构
這篇文章的目的
-
- Angular Material で画面を構成する際の標準的なコンポーネントを構成します。
-
- 共通サービスを組み込みます。
- HttpClientを組み込みます。

? 从这里开始,我们将以以下文章的内容为前提。
- Angular Material 導入
添加组件
ng generate component header
ng generate component main
app.component.htmlにヘッダーコンポーネントとルータを組み込みます。
app组件的html文件
<app-header></app-header>
<router-outlet></router-outlet>
- ルータからメインコンポーネントが読み込まれるよう設定します。
app-routing.module.ts的释义是应用程序路由模块。
import { MainComponent } from './main/main.component';
const routes: Routes = [
{path: '**', component: MainComponent},
];
- ヘッダーコンポーネントを設定します。
header.component.html的同义短语:
<div class="toolbar" role="banner">
<span> </span>
<mat-icon>thumb_up_alt</mat-icon>
<span> </span>
<span>Welcome</span>
<div class="spacer"></div>
<span>MENU</span>
<span> </span>
</div>
- メインコンポーネントにボタンを付けます。
主要的组件.html
<div class="content" role="main">
<p>mainworks !</p>
<button mat-raised-button color="primary" (click)="buttonClick()">Login</button>
</div>
增加服务
ng generate service common
增加 HttpClient
app.module.ts -> 应用程序模块.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MaterialModule } from '../material.module';
import { HeaderComponent } from './header/header.component';
import { MainComponent } from './main/main.component';
import { HttpClientModule } from '@angular/common/http'; // add
@NgModule({
declarations: [
AppComponent,
HeaderComponent,
MainComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
MaterialModule,
HttpClientModule, // add
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
-
- サービスモジュールにHttpClientを組み込みます。
- 下記のようにコンストラクタでHttpClientを定義することによりAngularによって実体が導入されます。
常见服务.ts
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class CommonService {
constructor(
private http: HttpClient,
) { }
func01(){
console.log("func01");
}
}
-
- メインコンポーネントに共通サービスを組み込みます。
- 下記のようにコンストラクタでCommonServiceを定義することによりAngularによって実体が導入されます。
主要组件.ts
import { Component, OnInit } from '@angular/core';
import { CommonService } from '../common.service';
@Component({
selector: 'app-main',
templateUrl: './main.component.html',
styleUrls: ['./main.component.css']
})
export class MainComponent implements OnInit {
constructor(
private commonService:CommonService,
) { }
ngOnInit(): void {
}
buttonClick(){
this.commonService.func01();
}
}
启动本地服务器
PS C:\home\git\material.angular.github> ng serve --o
✔ Browser application bundle generation complete.
Initial Chunk Files | Names | Raw Size
vendor.js | vendor | 5.61 MB |
polyfills.js | polyfills | 315.34 kB |
styles.css, styles.js | styles | 285.62 kB |
main.js | main | 81.74 kB |
runtime.js | runtime | 6.54 kB |
| Initial Total | 6.29 MB
Build at: 2022-07-01T07:40:26.403Z - Hash: a79e881bee5051f2 - Time: 3961ms
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
√ Compiled successfully.

?先决条件的文章
- Angular Material 導入
? 相关文章 )
-
- Angular Material datepicker 導入
-
- Angular Material Progress spinner 導入
-
- Angular Material 動的Tree 導入
- StackBlitzの導入からGitHub同期まで
?这里是GitHub。
?参考链接
-
- https://material.angular.io/components/categories
- https://angular.io/guide/setup-local