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 導入チュートリアル

推薦する

Typescriptを使用してWeChatミニプログラムを開発するための詳細な手順

Typescript の利点については詳しく説明する必要はありません。ご興味があれば、(https:...

MySQL が UNION を使用して 2 つのクエリを接続できない理由の詳細な説明

概要連合接続データセットキーワードは、2つのクエリ結果セットを1つに連結し、同一のレコードを除外する...

HTML を使用して IE8 および IE9 の互換表示モードを無効にするヒント

IE 8 以降では互換モードが追加され、これを有効にすると IE の下位バージョンでレンダリングされ...

Linux ネットワークプログラミングにおけるソケットオプションの実装

ソケットオプション機能機能: ソケットファイル記述子の属性の読み取りと設定に使用されるメソッド #i...

Vueのv-onパラメータの問題についてお話しましょう

Vue での v-on:clock の使用現在、vue.js フレームワークを学習しています。後で参...

ファイルをアップロードするための HTML フォームの「参照」ボタンを変更する方法

コードをコピーコードは次のとおりです。 <!DOCTYPE HTML PUBLIC "...

CSS で div にスクロールを追加し、スクロール バーを非表示にする

CSS は div にスクロールを追加し、スクロール バーを非表示にします。具体的なコードは次のとお...

CentOS6で定期的にjarプログラムを実行するスクリプトをcrontabで実行する

1. 簡単なJavaプログラムを書く パブリッククラステストシェル{ パブリック静的voidメイン(...

MySql はコミットする必要がありますか?

MySQL が挿入などの操作を実行するときにコミットする必要があるかどうかは、ストレージ エンジン...

この記事では、Vueのフロントエンドページングとバックエンドページングを実装する方法を説明します。

目次1: フロントエンドの手書きページング(データ量が少ない場合) 2: バックエンドのページング、...

Mysqlの自動増分IDについて知らないことがあるかもしれません

導入: MySQL を使用してテーブルを作成する場合、通常は自動インクリメント フィールド (AUT...

mysql5.6 マスタースレーブ設定と非同期の問題の詳細な説明

目次1. MySQL マスタースレーブレプリケーションの原理2. MySQLのコンパイルとインストー...

ウェブページのFOUC問題によるウェブページの混乱の解決策

FOUC は Flash of Unstyled Content の略で、FOUC と略されます。簡...

Windows サーバー ポートを開きます (例としてポート 8080 を使用します)

ポートとは何ですか?私たちが通常参照するポートは、物理的な意味でのポートではなく、具体的には TCP...

MySQL InnoDB のトランザクション特性を確保するにはどうすればよいですか?

序文「データベース トランザクションの特徴は何ですか?」と尋ねられたら、 ACID 特性である原子性...