Angularプロジェクトにおける共有モジュールの実装の詳細な説明

Angularプロジェクトにおける共有モジュールの実装の詳細な説明

1. 共有共通モジュール

共有モデルを作成する: ng gm share

共有する必要があるすべてのモジュールは、インポート後にエクスポートされます。

現時点では CommonModule のみが存在し、将来的には共有する必要があるコンポーネントがいくつか存在する予定です。

'@angular/core' から NgModule をインポートします。
'@angular/common' から CommonModule をインポートします。

@Ngモジュール({
  輸入: [
    共通モジュール
  ]、
  輸出:
    共通モジュール
  ]、
  宣言: []
})
SharedModuleクラスをエクスポートします。

コア モジュールをアプリ モジュールにインポートします。

'@angular/platform-b​​rowser' から BrowserModule をインポートします。
'@angular/core' から NgModule をインポートします。

'./app.component' から { AppComponent } をインポートします。
'./core/core.module' から {CoreModule} をインポートします。

@Ngモジュール({
  宣言: [
    アプリコンポーネント
  ]、
  輸入: [
    ブラウザモジュール、
    コアモジュール
  ]、
  プロバイダー: [],
  ブートストラップ: [AppComponent]
})
クラス AppModule をエクスポートします { }

2. 共有マテリアルモジュール

管理を容易にするために、Material 関連コンポーネントのインポートとエクスポートを別のモジュールに配置し、ShareModule でインポートとエクスポートを行います。

'@angular/core' から NgModule をインポートします。
'@angular/common' から CommonModule をインポートします。
import { MatToolbarModule、MatSidenavModule、MatButtonModule、MatCardModule、MatInputModule、MatListModule、MatSlideToggleModule、MatGridListModule、MatDialogModule、MatAutocompleteModule、MatMenuModule、MatCheckboxModule、MatTooltipModule、MatDatepickerModule、MatRadioModule、MatNativeDateModule、MatSelectModule } from '@angular/material';
'@angular/material' から MatIconModule をインポートします。

定数モジュール=[
  MatSidenavモジュール、
  MatIconモジュール、
  MatToolbarモジュール、
  MatIconモジュール、
  マットボタンモジュール、
  マットカードモジュール、
  MatInputModule、
  MatListモジュール、
  MatSlideToggleModule、
  MatGridListモジュール、
  MatDialogモジュール、
  MatAutocompleteモジュール、
  マットメニューモジュール、
  MatCheckboxモジュール、
  MatTooltipModule、
  MatDatepickerモジュール、
  MatRadioモジュール、
  MatNativeDateModule、
  マット選択モジュール
];

@Ngモジュール({
  宣言: [],
  輸入: [
    モジュール
  ]、
  輸出:
    モジュール
  ]
})
クラスMaterialModuleをエクスポートします{}
'@angular/core' から NgModule をインポートします。
'@angular/common' から CommonModule をインポートします。
'../material/material.module' から MaterialModule をインポートします。
'./confirm-dialog/confirm-dialog.component' から ConfirmDialogComponent をインポートします。

@Ngモジュール({
  輸入: [
    共通モジュール、
    マテリアルモジュール
  ]、
  輸出:
    共通モジュール、
    マテリアルモジュール
  ]、
  宣言: [ConfirmDialogComponent]
})
SharedModuleクラスをエクスポートします。

3. 共有確認ダイアログ

確認ダイアログ ボックスは、タスクを削除する場合でもプロジェクトを削除する場合でも使用されるため、sharedModule に配置されます。

$ ng gc 共有/確認ダイアログ

ng gc shared/confirm-dialog -it -isを使用してインラインテンプレートとスタイルを作成することもできます。

<フォーム>
  <h2 md-dialog-title>{{タイトル}}</h2>
  <div マットダイアログコンテンツ>
    {{コンテンツ}}
  </div>
  <div マットダイアログアクション>
    <button type="button" mat-raised-button color="primary" (click)="onClick(true)">OK</button>
    <button type="button" mat-button mat-dialog-close (click)="onClick(false)">キャンセル</button>
  </div>
</フォーム>
"@angular/core" から Component、OnInit、Inject をインポートします。
"@angular/material" から MatDialogRef をインポートします。
"@angular/material" から { MAT_DIALOG_DATA } をインポートします。

@成分({
  セレクター: "app-confirm-dialog",
  テンプレート URL: "./confirm-dialog.component.html",
  スタイル URL: ["./confirm-dialog.component.scss"]
})
ConfirmDialogComponentクラスをエクスポートし、OnInitを実装します。
  タイトル = "";
  コンテンツ = "";
  コンストラクタ(
    プライベートダイアログRef: MatDialogRef<ConfirmDialogComponent>,
    @Inject(MAT_DIALOG_DATA) プライベートデータ
  ){}

  ngOnInit() {
    this.title = this.data.title;
    this.content = this.data.content;
  }
  onClick(結果: ブール値) {
    this.dialogRef.close(結果);
  }
}

次に、ConfirmDialogComponent コンポーネントを sharedModule に配置します。

"@angular/core" から NgModule をインポートします。
"@angular/common" から CommonModule をインポートします。
「../material/material.module」から {MaterialModule} をインポートします。
「./confirm-dialog/confirm-dialog.component」から ConfirmDialogComponent をインポートします。

@Ngモジュール({
  インポート: [CommonModule、MaterialModule]、
  エクスポート: [CommonModule, MaterialModule],
  宣言: [ConfirmDialogComponent],
  エントリコンポーネント: [ConfirmDialogComponent]
})
SharedModuleクラスをエクスポートします。

ConfirmDialog を使用する場合は、「プロジェクトの削除」を参照してください。

上記は、Angular プロジェクトでの共有モジュールの実装に関する詳細な説明です。Angular の詳細については、123WORDPRESS.COM の他の関連記事にも注目してください。

以下もご興味があるかもしれません:
  • Angular2モジュールと共有モジュールの詳細な説明
  • Angular構造ディレクティブモジュールとスタイルの詳細な説明
  • Angular マルチモジュール プロジェクトのビルド プロセス
  • angular2 NgModel モジュールの具体的な使用法
  • 遅延モジュールのプリロードを実装する Angular の例
  • ルーティングを使用したAngularモジュールの遅延読み込みの詳細な説明
  • Angular2モジュールの遅延読み込み方法についての簡単な説明

<<:  MySQL ロック(テーブルロック、行ロック、共有ロック、排他ロック、ギャップロック)の詳細な説明

>>:  Linux 環境での Oracle 導入チュートリアル

推薦する

CentOS 7 は Hadoop 2.10 の高可用性 (HA) をビルドします

この記事では、CentOS 7 で高可用性 Hadoop 2.10 クラスターを構築する方法を紹介し...

ハイパーリンクを表示して開く方法

<br />インターネット上の無数の情報は基本的に HTML ドキュメントで構成されてお...

HTML タグのセマンティクス化 (H5 を含む)

導入HTML は、Web ドキュメントのコンテンツのコンテキスト構造と意味を提供します。HTML 自...

HTML の ReadOnly と Enabled の違い

ReadOnly 属性を持つ TextBox は、クライアント上で次のマークアップとして表示されます...

JavaScript の数値および数学オブジェクトの概要

目次1. JavaScript における数値2. Javascript の Math オブジェクト1...

MySQL 学習のまとめ: InnoDB ストレージ エンジンのアーキテクチャ設計の予備的な理解

1. ストレージエンジン前のセクションでは、SQL 実行プランは、エグゼキュータ コンポーネントがス...

ウェブデザインの経験とスキルの概要

■ ウェブサイトのテーマ計画 ウェブサイトのテーマが断片化しすぎないように注意してください。一般的に...

Keras を使って SQL インジェクション攻撃を判断する (例の説明)

この記事では、ディープラーニングフレームワーク keras を使用して、SQL インジェクションの特...

モバイルフロントエンド適応ソリューション(概要)

ネットで検索してみたところ、多くの面接でモバイル適応方法について質問されることが分かりました。最近い...

vuex での Getter の使用法の詳細な説明

序文Vuex を使用すると、ストア内に「ゲッター」を定義できます (これはストアの計算されたプロパテ...

BootStrap グリッド間に隙間を残す解決策

目次[例を見る]: 【本来の効果は以下の通り】理由は次のとおりです。 【解決】:要約するBootSt...

React の 3 つの主要属性における Ref の使用に関する詳細な説明

目次クラスコンポーネント機能コンポーネントインタビューのよくある質問: React における ref...

HTML で vue-router を使用するサンプル コード

vue と vue-router の紹介 <script src="https://...

SMS送信のカウントダウンを実装するJavaScript

この記事では、SMS送信のカウントダウンを実装するためのJavaScriptの具体的なコードを参考ま...

MySQLトリガーの使用

目次1. トリガーの紹介1. トリガーとは何ですか? 2. トリガーの特徴2. トリガーを作成する1...