Angular4-quick-guide
Angular 4-概要
Angularには3つのメジャーリリースがあります。 リリースされた最初のバージョンはAngular1で、AngularJSとも呼ばれます。 Angular1に続いてAngular2があり、Angular1と比較すると多くの変更が加えられています。
Angularの構造は、コンポーネント/サービスアーキテクチャに基づいています。 AngularJSは、モデルビューコントローラーに基づいていました。 2017年3月にリリースされた Angular 4 は大きなブレークスルーとなり、Angular2の後のAngularチームからの最新リリースです。
Angular 4は、Angular 2とほぼ同じです。 Angular 2との後方互換性があります。 Angular 2で開発されたプロジェクトは、Angular 4で問題なく動作します。
Angular 4で行われた新機能と変更点を見てみましょう。
なぜAngular4でありAngular3ではないのですか?
Angularチームは、モジュールの内部でバージョン管理の問題に直面しました。競合のため、Angularの次のバージョンであるAngular4をリリースしてリリースする必要がありました。
Angular 4に追加された新機能を見てみましょう-
ngIf
Angular2は if 条件のみをサポートしていました。 ただし、Angular 4は if else 条件もサポートしています。 ng-templateを使用してどのように機能するかを見てみましょう。
forループのキーワードとして
変数totalは、 as キーワードを使用してスライスの出力を保存します。
アニメーションパッケージ
Angular 4のアニメーションは個別のパッケージとして利用でき、@ angular/animationsからインポートする必要があります。 Angular2では、@ angular/core で使用できました。 下位互換性の面では、同じままです。
テンプレート
TypeScript 2.2
Angular 4は、TypeScriptの最新バージョンである2.2に更新されています。 これにより、プロジェクトの速度が向上し、型チェックが改善されます。
パイプタイトルケース
Angular 4では、各単語の最初の文字を大文字に変更する新しいパイプタイトルケースが追加されました。
上記のコード行では、次の出力が生成されます- Angular 4 Titlecase 。
HTTP検索パラメーター
http get apiの検索パラメーターが簡素化されました。 Angular2で行われていたのと同じために URLSearchParams を呼び出す必要はありません。
小さくて速いアプリ
Angular 4アプリケーションは、Angular2に比べて小さくて高速です。 TypeScriptバージョン2.2を使用します。これは、最終コンパイルのサイズを小さくする最新バージョンです。
Angular 4-環境のセットアップ
この章では、Angular 4に必要な環境設定について説明します。 Angular 4をインストールするには、次のものが必要です-
- ノード番号
- Npm
- 角度CLI
- コードを書くためのIDE
Nodejsは4より大きく、npmは3より大きくなければなりません。
ノード番号
nodejsがシステムにインストールされているかどうかを確認するには、ターミナルで node –v と入力します。 これは、現在システムにインストールされているnodejsのバージョンを確認するのに役立ちます。
何も印刷されない場合は、システムにnodejsをインストールします。 nodejsをインストールするには、nodejsのホームページhttps://nodejs.org/en/download/にアクセスし、OSに基づいてパッケージをインストールします。
nodejsのホームページは次のようになります-
OSに基づいて、必要なパッケージをインストールします。 nodejsがインストールされると、npmも一緒にインストールされます。 npmがインストールされているかどうかを確認するには、ターミナルでnpm –vと入力します。 npmのバージョンが表示されます。
Angular 4のインストールは、angular CLIを使用して非常に簡単です。 コマンドのリファレンスを取得するには、angularのホームページhttps://cli.angular.io/にアクセスしてください。
Angular CLIをインストールすると、ターミナルに上記のインストールが取得されます。 任意のIDE、つまりWebStorm、Atom、Visual Studio Codeなどを使用できます。
プロジェクトのセットアップの詳細については、次の章で説明します。
Angular 4-プロジェクトのセットアップ
AngularJSはモデルビューコントローラーに基づいていますが、Angular 2はコンポーネント構造に基づいています。 Angular 4は、Angular2と同じ構造で動作しますが、Angular2と比較すると高速です。
Angular4はTypeScript 2.2バージョンを使用しますが、Angular 2はTypeScriptバージョン1.8を使用します。 これにより、パフォーマンスに大きな違いが生じます。
Angular 4をインストールするために、Angularチームはインストールを簡単にするAngular CLIを考案しました。 Angular 4をインストールするには、いくつかのコマンドを実行する必要があります。
このサイトhttps://cli.angular.ioにアクセスして、Angular CLIをインストールします。
インストールを開始するには、まず、nodejsとnpmが最新バージョンでインストールされていることを確認する必要があります。 npmパッケージは、nodejsとともにインストールされます。
nodejsサイトhttps://nodejs.org/en/にアクセスします。
Nodejs v6.11.0の最新バージョンがユーザーに推奨されます。 4つ以上のnodejsを既に持っているユーザーは、上記のプロセスをスキップできます。 nodejsがインストールされると、以下に示すように、コマンドnode –v を使用してコマンドラインでnodeのバージョンを確認できます-
コマンドプロンプトにv6.11.0が表示されます。 nodejsがインストールされると、npmも一緒にインストールされます。
npmのバージョンを確認するには、ターミナルでコマンド npm –v を入力します。 以下に示すように、npmのバージョンが表示されます。
npmのバージョンは3.10.10です。 nodejsとnpmがインストールされたので、angular cliコマンドを実行して、Angular 4をインストールします。 あなたはウェブページに次のコマンドが表示されます-
コマンドラインの最初のコマンドから始めて、それがどのように機能するかを見てみましょう。
まず、Angular CLIコマンドを実行する空のディレクトリを作成します。
Angular CLI Installation Step1
上記のコマンドを入力して、Angular 4をインストールします。 インストールプロセスが開始され、完了するまでに数分かかります。
Angular CLI Installation Step2
インストールする上記のコマンドが完了すると、次のコマンドプロンプトが表示されます-
Angular CLI Installation Step3
空のフォルダー ProjectA4 を作成し、Angular CLIコマンドをインストールしました。 また、*-g *を使用して、Angular CLIをグローバルにインストールしました。 これで、Angular 4プロジェクトを任意のディレクトリまたはフォルダーに作成できます。AngularCLIプロジェクトはシステムにグローバルにインストールされ、任意のディレクトリから使用できるため、賢明にインストールする必要はありません。
Angular CLIがインストールされているかどうかを確認しましょう。 インストールを確認するには、ターミナルで次のコマンドを実行します-
Angular CLI Installation Step4
現在1.2.0である@ angular/cliバージョンを取得します。 実行中のノードバージョンは6.11.0で、OSの詳細も含まれています。 上記の詳細から、angular cliが正常にインストールされ、プロジェクトを開始する準備ができたことがわかります。
これでAngular 4がインストールされました。 Angular 4で最初のプロジェクトを作成しましょう。 Angular 4でプロジェクトを作成するには、次のコマンドを使用します-
プロジェクトに ng new Angular 4-app という名前を付けます。
コマンドラインで上記のコマンドを実行します。
Angular CLI Installation Step5
プロジェクト Angular 4-app が正常に作成されました。 プロジェクトがAngular 4で実行するために必要なすべての必要なパッケージをインストールします。 ディレクトリ Angular 4-app にある作成されたプロジェクトに切り替えましょう。 コマンドラインでディレクトリを変更します- cd Angular 4-app 。
Angular 4の操作にはVisual Studio Code IDEを使用します。 IDE、つまりAtom、WebStormなどを使用できます。
Visual Studio Codeをダウンロードするには、https://code.visualstudio.com/にアクセスし、* Windows用にダウンロード*をクリックします。
IDEをインストールするために* Windows用にダウンロード*をクリックし、セットアップを実行してIDEの使用を開始します。
エディタは次のように見えます-
まだプロジェクトを開始していません。 次に、angle-cliを使用して作成したプロジェクトを取り上げます。
プロジェクトのファイル構造ができたので、次のコマンドでプロジェクトをコンパイルしましょう-
ng serve Command Starts Server
Webサーバーはポート4200で起動します。 ブラウザーにURL http://localhost:4200/ を入力して、出力を確認します。 プロジェクトがコンパイルされると、次の出力が表示されます-
ブラウザで http://localhost:4200/ を実行すると、次の画面が表示されます-
私たちは今、次のコンテンツを表示するためにいくつかの変更を加えましょう-
「Angular 4プロジェクトへようこそ」
プロジェクトのセットアップを完了しましょう。 ご覧のように、ポート4200を使用しています。これは、コンパイル中にangle-cliが使用するデフォルトのポートです。 次のコマンドを使用して、必要に応じてポートを変更できます-
Angular 4アプリフォルダーには、次の*フォルダー構造*があります-
- e2e -エンドツーエンドのテストフォルダー。 主にe2eは統合テストに使用され、アプリケーションが正常に動作することを保証します。
- node_modules -インストールされているnpmパッケージはnode_modulesです。 フォルダを開いて、利用可能なパッケージを確認できます。
- src -このフォルダーは、Angular 4を使用してプロジェクトで作業する場所です。
Angular 4アプリフォルダーには、次の*ファイル構造*があります-
- .angular-cli.json -基本的にプロジェクト名、cliのバージョンなどを保持します。
- .editorconfig -これはエディターの構成ファイルです。
- .gitignore -リポジトリを複製する他のユーザーと無視ルールを共有するには、リポジトリに.gitignoreファイルをコミットする必要があります。
- karma.conf.js -これは、分度器を介した単体テストに使用されます。 プロジェクトに必要なすべての情報は、karma.conf.jsファイルで提供されます。
- package.json -package.jsonファイルは、npm installを実行したときにnode_modulesにインストールされるライブラリを示します。
現在、エディターでファイルを開くと、次のモジュールが追加されます。
ライブラリをさらに追加する必要がある場合は、それらをここに追加してnpm installコマンドを実行できます。
- protractor.conf.js -これは、アプリケーションに必要なテスト構成です。
- tsconfig.json -これには基本的に、コンパイル時に必要なコンパイラオプションが含まれています。
- tslint.json -これは、コンパイル中に考慮されるルールを含む構成ファイルです。
- srcフォルダー*はメインフォルダーで、*内部的には異なるファイル構造*を持っています。
app
以下に説明するファイルが含まれています。 これらのファイルは、デフォルトでangle-cliによってインストールされます。
- app.module.ts -ファイルを開くと、コードがインポートされた異なるライブラリへの参照を持っていることがわかります。 Angular-cliは、インポートにこれらのデフォルトライブラリ(angular/core、platform-browser)を使用しています。 名前自体は、ライブラリの使用法を説明しています。
それらはインポートされ、宣言、インポート、プロバイダー、*ブートストラップ*などの変数に保存されます。
宣言-宣言では、コンポーネントへの参照が保存されます。 Appcomponentは、新しいプロジェクトが開始されるたびに作成されるデフォルトのコンポーネントです。 別のセクションで新しいコンポーネントの作成について学習します。
- app.component.css -あなたはここでCSS構造を書くことができます。 以下に示すように、今、divに背景色を追加しました。
- app.componentl -HTMLコードはこのファイルで使用できます。
これは、プロジェクト作成で現在利用可能なデフォルトのHTMLコードです。
- app.component.spec.ts -これらは、ソースコンポーネントの単体テストを含む自動生成されたファイルです。
- app.component.ts -コンポーネントのクラスはここで定義されています。 .tsファイル内のhtml構造の処理を行うことができます。 処理には、データベースへの接続、他のコンポーネントとの対話、ルーティング、サービスなどのアクティビティが含まれます。
ファイルの構造は次のとおりです-
資産
このフォルダーに画像、jsファイルを保存できます。
環境
このフォルダーには、実稼働環境または開発環境の詳細が含まれています。 フォルダーには2つのファイルが含まれています。
- environment.prod.ts
- environment.ts
両方のファイルには、最終ファイルを実稼働環境でコンパイルするか、開発環境でコンパイルするかについての詳細が含まれています。
Angular 4アプリフォルダーの追加のファイル構造には、次のものが含まれます-
favicon.ico
これは通常、Webサイトのルートディレクトリにあるファイルです。
インデックス
これはブラウザに表示されるファイルです。
本体には <app-root> </app-root> があります。 これは app.component.ts ファイルで使用されるセレクターであり、app.componentlファイルの詳細を表示します。
main.ts
main.tsは、プロジェクト開発を開始するファイルです。 まず、必要な基本モジュールをインポートします。 現在、angular/core、angular/platform-browser-dynamicが表示されている場合、angular-cliのインストールおよびプロジェクトのセットアップ中にapp.moduleおよび環境がデフォルトでインポートされます。
- platformBrowserDynamic()。bootstrapModule(AppModule)には、親モジュール参照 *AppModule があります。 したがって、ブラウザで実行すると、呼び出されるファイルはindexlになります。 Indexlは、次のコードの実行時に親モジュール、つまりAppModuleを呼び出すmain.tsを内部的に参照します-
AppModuleが呼び出されると、app.module.tsが呼び出され、さらに次のようにboostrapに基づいてAppComponentが呼び出されます-
app.component.tsには、indexlファイルで使用される selector:app-root があります。 これにより、app.componentlに存在するコンテンツが表示されます。
次は、ブラウザに表示されます-
polyfill.ts
これは主に下位互換性のために使用されます。
styles.css
これは、プロジェクトに必要なスタイルファイルです。
test.ts
ここでは、プロジェクトをテストするためのユニットテストケースが処理されます。
tsconfig.app.json
これはコンパイル中に使用され、アプリケーションを実行するために使用する必要がある設定の詳細が含まれています。
tsconfig.spec.json
これにより、テストの詳細を維持できます。
typings.d.ts
TypeScript定義を管理するために使用されます。
最終的なファイル構造は次のようになります-
Angular 4-コンポーネント
Angular 4での開発の大部分は、コンポーネントで行われます。 コンポーネントは基本的に、ブラウザに表示されるコンポーネントのlファイルとやり取りするクラスです。 前の章の1つでファイル構造を見てきました。 ファイル構造にはアプリコンポーネントがあり、次のファイルで構成されています-
- app.component.css
- app.componentl
- app.component.spec.ts
- app.component.ts
- app.module.ts
上記のファイルは、angular-cliコマンドを使用して新しいプロジェクトを作成したときにデフォルトで作成されました。
あなたが app.module.ts ファイルを開いた場合、それはインポートされたいくつかのライブラリと次のようにappcomponentに割り当てられている宣言を持っています-
宣言には、既にインポートしたAppComponent変数が含まれています。 これが親コンポーネントになります。
現在、angle-cliには、独自のコンポーネントを作成するコマンドがあります。 ただし、デフォルトで作成されるアプリコンポーネントは常に親のままであり、次に作成されるコンポーネントが子コンポーネントを形成します。
コマンドを実行してコンポーネントを作成しましょう。
コマンドラインで上記のコマンドを実行すると、次の出力が表示されます-
次に、ファイル構造を確認してみると、src/appフォルダーの下にnew-cmp新しいフォルダーが作成されます。
次のファイルがnew-cmpフォルダに作成されます-
- new-cmp.component.css-新しいコンポーネントのcssファイルが作成されます。
- new-cmp.componentl-htmlファイルが作成されます。
- new-cmp.component.spec.ts-これは単体テストに使用できます。
- new-cmp.component.ts-ここでは、モジュール、プロパティなどを定義できます。
次のように変更がapp.module.tsファイルに追加されます-
上記のnew-cmp.component.tsファイルを見ると、コンストラクターとngOnInit()というメソッドを持つOnInit.Inを実装するNewCmpComponentという新しいクラスが作成されます。 ngOnInitは、クラスが実行されるときにデフォルトで呼び出されます。
フローの仕組みを確認しましょう。 これで、デフォルトで作成されるアプリコンポーネントが親コンポーネントになります。 後で追加されたコンポーネントはすべて子コンポーネントになります。
上記は通常のhtmlファイルであり、ブラウザには何も印刷されていません。 bodyセクションのタグを見てください。
これはデフォルトでAngularによって作成されたルートタグです。 このタグには、 main.ts ファイルに参照があります。
AppModuleはメインの親モジュールのアプリからインポートされ、同じことがブートストラップモジュールにも与えられ、appmoduleがロードされます。
ここで、AppComponentは指定された名前、つまり appの参照を保存する変数です。 Component.ts と同じものがブートストラップに与えられます。 app.component.ts ファイルを見てみましょう。
角のコアがインポートされ、コンポーネントと呼ばれ、宣言子で同じものが使用されます-
セレクターへの宣言子参照では、 templateUrl および styleUrl が指定されています。 ここでのセレクタは、上記のindexlファイルに配置されたタグにすぎません。
クラスAppComponentには、ブラウザに表示されるtitleという変数があります。
HTMLコードと変数タイトルのみが中括弧で囲まれています。 app.component.ts ファイルに存在する値で置き換えられます。 これはバインディングと呼ばれます。 バインディングの概念については、後続の章で説明します。
これで、 new-cmp という新しいコンポーネントが作成されました。 新しいコンポーネントを作成するためにコマンドが実行されると、同じことが app.module.ts ファイルに含まれます。
new-cmpで作成された新しいファイルを確認しましょう。
new-cmp.component.ts
ここでは、コアもインポートする必要があります。 コンポーネントの参照は、宣言子で使用されます。
宣言子には、 app-new-cmp および templateUrl および styleUrl というセレクターがあります。
上記のように、htmlコード、つまりpタグがあります。 現在スタイルは必要ないため、スタイルファイルは空です。 しかし、プロジェクトを実行すると、新しいコンポーネントに関連するものはブラウザに表示されません。 ここで何かを追加してみましょう。これは後でブラウザで見ることができます。
セレクター、つまり app-new-cmp は次のように app.component l ファイルに追加する必要があります-
新しいコンポーネントl *ファイルと *new-cmp.component.ts ファイルを見てみましょう。
new-cmp.component.ts
このクラスでは、new componentという変数を1つ追加しました。値は「 Entered in new component created 」です。
上記の変数は次のように .new-cmp.componentl ファイルにバインドされています-
- appに <app-new-cmp> </app-new-cmp> セレクターを含めたので。 親コンポーネントのlであるコンポーネントl *、新しいコンポーネントlファイル(new-cmp.componentl)に存在するコンテンツは、次のようにブラウザーに表示されます-
同様に、要件に従って、 app.componentl ファイルのセレクターを使用してコンポーネントを作成し、リンクすることができます。
Angular 4-モジュール
Angularの Module は、アプリケーションに関連するコンポーネント、ディレクティブ、パイプ、およびサービスをグループ化できる場所を指します。
Webサイトを開発している場合、ヘッダー、フッター、左、中央、および右のセクションがモジュールの一部になります。
モジュールを定義するには、 NgModule を使用できます。 Angular –cliコマンドを使用して新しいプロジェクトを作成すると、ngmoduleはデフォルトでapp.module.tsファイルに作成され、次のようになります-
NgModuleは次のようにインポートする必要があります-
ngmoduleの構造は以下に示すとおりです-
宣言
作成されたコンポーネントの配列です。 新しいコンポーネントが作成された場合、最初にインポートされ、以下に示すように参照が宣言に含まれます-
インポート
これは、アプリケーションで使用する必要があるモジュールの配列です。 また、宣言配列内のコンポーネントで使用することもできます。 たとえば、現在@NgModuleには、インポートされたブラウザモジュールがあります。 アプリケーションにフォームが必要な場合は、次のようにモジュールを含めることができます-
プロバイダ
これには、作成されたサービスが含まれます。
ブートストラップ
これには、実行を開始するためのメインアプリコンポーネントが含まれます。
Angular 4-データバインディング
データバインディングは、AngularJS、Angular 2から直接利用でき、Angular 4でも利用できるようになりました。 データバインディングには中括弧を使用します-\ {\ {}};このプロセスは補間と呼ばれます。 前の例で、変数titleに値を宣言する方法を既に見てきました。同じ値がブラウザーに出力されます。
ここで、ブラウザで数ヶ月のドロップダウンを作成しましょう。 それを行うには、次のように app.component.ts に月の配列を作成しました-
上記の月の配列は、ブラウザのドロップダウンに表示されます。 このために、次のコード行を使用します-
オプション付きの通常の選択タグを作成しました。 オプションでは、* forループ*を使用しました。 * forループ*は、月の配列を反復処理するために使用されます。これにより、月に存在する値でオプションタグが作成されます。
Angularの for 構文は* ngFor =“ let I of months” であり、月の値を取得するために\ {\ {i}}に表示しています。
2つの中括弧は、データバインディングに役立ちます。 app.component.ts ファイルで変数を宣言すると、中括弧を使用して同じ変数が置き換えられます。
上記の月の配列の出力をブラウザで見てみましょう
条件に基づいてブラウザにデータを表示してみましょう。 ここでは、変数を追加し、値をtrueに割り当てています。 ifステートメントを使用して、表示するコンテンツを非表示/表示できます。
例
出力
例
この場合、 isavailable 変数をfalseにしました。 else 条件を印刷するには、次のように ng-template を作成する必要があります-
完全なコードは次のようになります-
次のスクリーンショットは、ブラウザーでの表示を示しています。
ここで、変数を isavailable としてtrueにします。 HTMLでは、条件は次のように書かれています-
変数がtrueの場合、 condition1 、そうでない場合は condition2 。 これで、2つのテンプレートがID #condition1 *および#condition2 *で作成されます。
ブラウザでの表示は次のとおりです-
Angular 4-イベントバインディング
この章では、Angular 4でイベントバインディングがどのように機能するかについて説明します。 ユーザーがキーボードの動き、マウスのクリック、またはマウスオーバーの形でアプリケーションを操作すると、イベントが生成されます。 これらのイベントは、何らかのアクションを実行するために処理する必要があります。 これは、イベントバインディングが登場する場所です。
これをよりよく理解するための例を考えてみましょう。
app.componentl
以下は、ボタンを定義し、ボタンに機能を追加する構文です。
関数は .ts ファイルで定義されています: app.component.ts
ボタンをクリックすると、コントロールは関数 myClickFunction に移動し、次のスクリーンショットに示すように、ボタンがクリックされたことを示すダイアログボックスが表示されます-
変更イベントをドロップダウンに追加しましょう。
次のコード行は、ドロップダウンに変更イベントを追加するのに役立ちます-
関数は、 app.component.ts ファイルで宣言されています-
コンソールメッセージ「 Changed month from the Dropdown 」がイベントとともにコンソールに表示されます。
以下に示すように、ドロップダウンからの値が変更されたときに、 app.component.ts にアラートメッセージを追加しましょう-
ドロップダウンの値が変更されると、ダイアログボックスが表示され、次のメッセージが表示されます-「ドロップダウンから月を変更しました」。
Angular 4-テンプレート
app.componentl
Spanタグの場合、 else 条件を含む if ステートメントを追加し、テンプレートcondition1またはelse condition2を呼び出します。
テンプレートは次のように呼び出されます-
条件が真の場合、condition1テンプレートが呼び出され、そうでない場合はcondition2が呼び出されます。
app.component.ts
ブラウザでの出力は次のとおりです-
変数 isavailable はfalseなので、condition2テンプレートが出力されます。 ボタンをクリックすると、それぞれのテンプレートが呼び出されます。 ブラウザを調べると、domでspanタグを取得できないことがわかります。 次の例は、同じことを理解するのに役立ちます。
ブラウザを調べると、domにspanタグがないことがわかります。 domの Condition is invalid from template があります。
htmlの次のコード行は、domでspanタグを取得するのに役立ちます。
then条件を削除すると、ブラウザーに*「Condition is valid」メッセージが表示され、domでもspanタグを使用できます。 たとえば、 *app.component.ts では、 isavailable 変数をtrueにしています。
Angular 4-ディレクティブ
Angularの Directives は js クラスで、 @ directive として宣言されています。 Angularには3つのディレクティブがあります。 ディレクティブは以下のとおりです-
コンポーネント指令
これらは、実行時にコンポーネントを処理、インスタンス化、および使用する方法の詳細を含むメインクラスを形成します。
構造指令
構造ディレクティブは、基本的にdom要素の操作を扱います。 構造ディレクティブには、ディレクティブの前に*記号があります。 たとえば、* ngIf および* ngFor 。
属性ディレクティブ
属性ディレクティブは、dom要素の外観と動作の変更を処理します。 以下に示すように、独自のディレクティブを作成できます。
カスタムディレクティブを作成する方法は?
このセクションでは、コンポーネントで使用されるカスタムディレクティブについて説明します。 カスタムディレクティブは当社が作成したもので、標準ではありません。
カスタムディレクティブの作成方法を見てみましょう。 コマンドラインを使用してディレクティブを作成します。 コマンドラインを使用してディレクティブを作成するコマンドは-
これがコマンドラインでの表示方法です
上記のファイル、つまり change-text.directive.spec.ts および change-text.directive.ts が作成され、 app.module.ts ファイルが更新されます。
app.module.ts
テキストを変更します。 指令
上記のファイルにはディレクティブがあり、セレクタープロパティもあります。 セレクターで定義するものは何でも、ビューで一致する必要があり、カスタムディレクティブを割り当てます。
次のように変更を change-text.directive.ts ファイルに書き込みます-
change-text.directive.ts
上記のファイルには、 ChangeTextDirective というクラスと、必須の ElementRef 型の要素を受け取るコンストラクターがあります。 要素には、 Change Text ディレクティブが適用されるすべての詳細が含まれます。
これで、ブラウザには次のように表示されます。
角度4-パイプ
この章では、Angular 4のパイプとは何かを説明します。 パイプは以前、Angular1ではフィルターと呼ばれ、Angular 2および4ではパイプと呼ばれていました。
|文字はデータの変換に使用されます。 以下は同じものの構文です
整数、文字列、配列、日付を入力として受け取り、 | で区切って、必要に応じて形式に変換し、ブラウザに表示します。
パイプを使用したいくつかの例を考えてみましょう。
ここでは、大文字で指定されたテキストを表示します。 これは、次のようにパイプを使用して行うことができます-
app.component.ts
次のコード行は、 app.componentl ファイルに入ります。
次のスクリーンショットに示すようにブラウザが表示されます-
Angular 4はいくつかの組み込みパイプを提供します。 パイプは以下のとおりです-
- 小文字パイプ
- 大文字パイプ
- デートパイプ
- 通貨パイプ
- ジョンソンパイプ
- パーセントパイプ
- デシマルパイプ
- スライスパイプ
小文字と大文字のパイプはすでに見ました。 他のパイプがどのように機能するかを見てみましょう。
次のコード行は、 app.component.ts ファイルで必要な変数を定義するのに役立ちます-
次のスクリーンショットは、各パイプの出力を示しています-
カスタムパイプを作成する方法?
カスタムパイプを作成するために、新しい ts ファイルを作成しました。 ここでは、 sqrt カスタムパイプを作成します。 私たちはファイルに同じ名前を付けており、次のように見えます-
app.sqrt.ts
カスタムパイプを作成するには、Angular/coreからPipe and Pipe Transformをインポートする必要があります。 @Pipeディレクティブで、パイプに名前を付ける必要があります。これは、lファイルで使用されます。 sqrtパイプを作成しているので、sqrtという名前を付けます。
さらに進むと、クラスを作成する必要があり、クラス名は SqrtPipe です。 このクラスは PipeTransform を実装します。
クラスで定義された変換メソッドは、引数として数値を取り、平方根を取った後に数値を返します。
新しいファイルを作成したので、同じものを* app.module.ts。*に追加する必要があります。これは次のように行われます-
出力は次のようになります-
Angular 4-ルーティング
ルーティングとは、基本的にページ間を移動することを意味します。 新しいページへのリンクを含む多くのサイトを見てきました。 これはルーティングを使用して実現できます。 ここで参照しているページは、コンポーネントの形式になります。 コンポーネントの作成方法はすでに説明しました。 コンポーネントを作成して、ルーティングを使用する方法を見てみましょう。
メインの親コンポーネント app.module.ts では、次に示すようにルーターモジュールを含める必要があります-
「@ angular/router」から\ {RouterModule}をインポートします
ここでは、RouterModuleはangular/routerからインポートされます。 モジュールは以下に示すようにインポートに含まれています-
RouterModuleは forRoot を参照します。これは入力を配列として受け取り、その配列にはパスとコンポーネントのオブジェクトが含まれます。 パスはルーターの名前、コンポーネントはクラスの名前、つまり作成されたコンポーネントです。
コンポーネント作成ファイルを見てみましょう-
New-cmp.component.ts
強調表示されたクラスは、メインモジュールのインポートで言及されています。
新しいcmp.componentl
ここで、必要なときに表示される、またはメインモジュールからクリックされるHTMLファイルの上記のコンテンツが必要です。 このため、 app.componentl にルーターの詳細を追加する必要があります。
上記のコードでは、アンカーリンクタグを作成し、routerLinkに*“ new-cmp” を指定しています。 これは、 *app.module.ts でパスと呼ばれます。
ユーザーが[新しいコンポーネント]をクリックすると、ページにコンテンツが表示されます。 このために、次のタグが必要です- <router-outlet> </router-outlet> 。
上記のタグにより、ユーザーが*新しいコンポーネント*をクリックすると、 new-cmp.componentl のコンテンツがページに表示されます。
出力がブラウザにどのように表示されるかを見てみましょう。
ユーザーが[新しいコンポーネント]をクリックすると、ブラウザーに次のように表示されます。
URLには http://localhost:4200/new-cmp が含まれています。 ここで、new-cmpは、 app.module.ts および app.componentl のルーターリンクで指定されたパスである元のURLに追加されます。
ユーザーが[新しいコンポーネント]をクリックしても、ページは更新されず、コンテンツは再読み込みなしでユーザーに表示されます。 クリックすると、サイトコードの特定の部分のみがリロードされます。 この機能は、ページに重いコンテンツがあり、ユーザーの操作に基づいてロードする必要がある場合に役立ちます。 この機能は、ページがリロードされないため、優れたユーザーエクスペリエンスも提供します。
Angular 4-サービス
この章では、Angular 4のサービスについて説明します。
ページのどこでもコードを使用する必要がある場合があります。 コンポーネント間で共有する必要があるデータ接続などに使用できます。 サービスはそれを達成するのに役立ちます。 サービスを使用すると、プロジェクト全体の他のコンポーネントのメソッドとプロパティにアクセスできます。
サービスを作成するには、コマンドラインを使用する必要があります。 同じためのコマンドは-
ファイルは次のようにアプリフォルダに作成されます-
以下は、下部に作成されたファイル- myservice.service.specs.ts および myservice.service.ts です。
myservice.service.ts
ここでは、Injectableモジュールが @ angular/core からインポートされます。 @ Injectable メソッドと MyserviceService というクラスが含まれています。 このクラスでサービス関数を作成します。
新しいサービスを作成する前に、メインの親 app.module.ts で作成されたサービスを含める必要があります。
クラス名を使用してサービスをインポートし、同じクラスがプロバイダーで使用されています。 ここで、サービスクラスに戻り、サービス関数を作成しましょう。
サービスクラスでは、今日の日付を表示する関数を作成します。 メインの親コンポーネント app.component.ts と、前の章で作成した新しいコンポーネント new-cmp.component.ts で同じ関数を使用できます。
ここで、関数がサービスでどのように見えるか、コンポーネントでどのように使用するかを見てみましょう。
上記のサービスファイルでは、関数 showTodayDate を作成しました。 次に、作成された新しいDate()を返します。 コンポーネントクラスでこの関数にアクセスする方法を見てみましょう。
app.component.ts
以下に示すように、 l ファイルに日付を表示します-
作成された新しいコンポーネントでサービスを使用する方法を見てみましょう。
作成した新しいコンポーネントでは、最初に必要なサービスをインポートし、そのサービスのメソッドとプロパティにアクセスする必要があります。 ハイライトされたコードをご覧ください。 今日の日付は、次のようにコンポーネントのHTMLに表示されます-
新しいコンポーネントのセレクターは app.componentl ファイルで使用されます。 上記のHTMLファイルの内容は、以下に示すようにブラウザに表示されます-
コンポーネントのサービスのプロパティを変更すると、他のコンポーネントでも同じことが変更されます。 これがどのように機能するかを見てみましょう。
サービスで1つの変数を定義し、それを親および新しいコンポーネントで使用します。 親コンポーネントのプロパティを再度変更し、新しいコンポーネントで同じプロパティが変更されたかどうかを確認します。
他のコンポーネントで serviceproperty 変数を使用してみましょう。 app.component.ts では、次のように変数にアクセスしています-
変数を取得して、console.logを操作します。 次の行では、変数の値を「 component created 」に変更します。 new-cmp.component.ts でも同じことを行います。
上記のコンポーネントでは、何も変更せず、プロパティをコンポーネントプロパティに直接割り当てています。
ブラウザで実行すると、 app.component.ts で値が変更され、 new-cmp.component.ts でも同じ値が表示されるため、サービスプロパティが変更されます。
また、変更する前にコンソールで値を確認してください。
Angular 4-Httpサービス
Httpサービスは、外部データの取得、投稿などに役立ちます。 httpサービスを利用するには、httpモジュールをインポートする必要があります。 httpサービスを利用する方法を理解するための例を考えてみましょう。
httpサービスの使用を開始するには、以下に示すように app.module.ts にモジュールをインポートする必要があります-
強調表示されたコードが表示されている場合、@ angular/httpからHttpModuleをインポートしました。インポート配列にも同じものが追加されています。
上で強調表示されているコードを理解しましょう。 次のように行われているサービスを利用するためにhttpをインポートする必要があります-
クラス AppComponent では、コンストラクターが作成され、Http型のプライベート変数httpが作成されます。 データを取得するには、httpで利用可能な get API を次のように使用する必要があります
コードに示されているように、パラメーターとしてURLを取得する必要があります。
テストURL-https://jsonplaceholder.typicode.com/usersを使用して、jsonデータを取得します。 フェッチされたurlデータマップで2つの操作が実行され、サブスクライブされます。 Mapメソッドは、データをJSON形式に変換するのに役立ちます。 マップを使用するには、以下に示すように同じものをインポートする必要があります-
マップが完了すると、サブスクライブはブラウザに表示されるようにコンソールに出力を記録します-
表示される場合、jsonオブジェクトがコンソールに表示されます。 オブジェクトはブラウザにも表示できます。
ブラウザに表示されるオブジェクトについて、 app.componentl と app.component.ts のコードを次のように更新します-
表示データメソッドでは、データを変数httpdataに格納します。 データは、このhttpdata変数に対して for を使用してブラウザに表示されます。これは app.componentl ファイルで行われます。
jsonオブジェクトは次のとおりです-
オブジェクトには、id、name、username、email、addressなどのプロパティがあり、内部にはstreet、cityなどがあります。 電話、ウェブサイト、会社に関するその他の詳細。 for ループを使用して、 app.componentl ファイルに示すように、名前と都市の詳細をブラウザーに表示します。
これは、ディスプレイがブラウザに表示される方法です-
ここで、特定のデータに基づいてフィルタリングする検索パラメーターを追加しましょう。 渡された検索パラメーターに基づいてデータを取得する必要があります。
app.component.ts
app.componentl
これは、ブラウザが表示される方法です-
httpから受信したデータをブラウザでコンソールしました。 同じことがブラウザコンソールに表示されます。 id = 2 のjsonからの名前がブラウザーに表示されます。
Angular 4-フォーム
この章では、Angular 4でフォームがどのように使用されるかを見ていきます。 フォームを操作する2つの方法-テンプレート駆動型とモデル駆動型について説明します。
テンプレート駆動型フォーム
テンプレート駆動フォームでは、ほとんどの作業はテンプレートで行われます。モデル駆動型のフォームでは、ほとんどの作業はコンポーネントクラスで行われます。
次に、テンプレート駆動型フォームでの作業を検討してみましょう。 簡単なログインフォームを作成し、メールID、パスワードを追加して、フォームにボタンを送信します。 開始するには、次のように app.module.ts で行われる @ angular/core からFormsModuleにインポートする必要があります-
したがって、 app.module.ts でFormsModuleをインポートし、強調表示されたコードに示すように、インポート配列に同じものが追加されます。
電子メールID、パスワード、および送信ボタンを持つ入力タグを持つ単純なフォームを作成しました。 タイプ、名前、プレースホルダーを割り当てました。
テンプレート駆動フォームでは、 ngModel ディレクティブと name 属性を追加して、モデルフォームコントロールを作成する必要があります。 したがって、Angularにフォームのデータにアクセスさせたい場合は、上記のようにそのタグにngModelを追加します。 ここで、emailidとpasswdを読み取る必要がある場合は、ngModelを追加する必要があります。
ご覧の場合、ngFormも*#userlogin に追加しています。 *ngForm ディレクティブは、作成したフォームテンプレートに追加する必要があります。 また、関数 onClickSubmit を追加し、それに userlogin.value を割り当てました。
上記の app.component.ts ファイルでは、onClickSubmit関数を定義しています。 フォーム送信ボタンをクリックすると、コントロールは上記の機能になります。
これは、ブラウザが表示される方法です-
フォームは次のようになります。 データを入力して、submit関数に電子メールIDがすでに入力されています。
上のスクリーンショットに示すように、メールIDが下部に表示されます。
モデル駆動型
モデル駆動型フォームでは、@ angular/formsからReactiveFormsModuleをインポートし、インポート配列で同じものを使用する必要があります。
- app.module.ts。*に変更があります
変数formdataはクラスの開始時に初期化され、上記のようにFormGroupで初期化されます。 変数emailidおよびpasswdは、フォームに表示されるデフォルト値で初期化されます。 必要に応じて空白にしておくことができます。
これにより、フォームUIで値が表示されます。
formdataを使用してフォームの値を初期化しました。これをUI app.componentl の形式で使用する必要があります。
lファイルでは、フォームの角括弧でformGroupを使用しています。たとえば、[formGroup] =” formdata”などです。 送信時に、関数は onClickSubmit と呼ばれ、 formdata.value が渡されます。
入力タグ formControlName が使用されます。 app.component.ts ファイルで使用した値が与えられます。
[送信]をクリックすると、コントロールは app.component.ts ファイルで定義されている関数 onClickSubmit に渡されます。
[ログイン]をクリックすると、上記のスクリーンショットに示すように値が表示されます。
フォーム検証
次に、モデル駆動型フォームを使用したフォーム検証について説明します。 組み込みのフォーム検証を使用することも、カスタム検証アプローチを使用することもできます。 フォームで両方のアプローチを使用します。 前のセクションで作成したのと同じ例を続けます。 Angular 4では、以下に示すように @ angular/forms からバリデーターをインポートする必要があります-
Angularには、必須フィールド、minlength、maxlength *、 *pattern などのバリデーターが組み込まれています。 これらはValidatorsモジュールを使用してアクセスします。
特定のフィールドが必須かどうかをAngularに伝えるために必要なバリデータまたはバリデータの配列を追加するだけです。
入力テキストボックスの1つ、つまり電子メールIDで同じことを試してみましょう。 電子メールIDについては、次の検証パラメータを追加しました-
- 必須
- パターンマッチング
これは、コードが app.component.ts で検証を受ける方法です。
送信ボタンについては、角括弧内に無効化された値を追加しました-*!formdata.valid *です。 したがって、formdata.validが有効でない場合、ボタンは無効のままになり、ユーザーは送信できません。
ブラウザでこれがどのように機能するかを見てみましょう-
上記の場合、入力したメールIDは無効であるため、ログインボタンは無効になっています。 有効なメールIDを入力して、違いを確認してみましょう。
これで、入力したメールIDは有効です。 したがって、ログインボタンが有効になっていることがわかり、ユーザーはそれを送信できるようになります。 これにより、入力したメールIDが下部に表示されます。
同じフォームでカスタム検証を試してみましょう。 カスタム検証では、独自のカスタム関数を定義し、必要な詳細を追加できます。 同じ例が表示されます。
上記の例では、関数 password validation を作成しました。これはformcontrolの前のセクションで使用されています-* passwd:new FormControl( ""、this.passwordvalidation)*。
作成した関数では、入力した文字の長さが適切かどうかを確認します。 文字が5未満の場合、上記のようにpasswdをtrueにして戻ります- return \ {"passwd":true}; 。 文字が5文字以上の場合、有効と見なされ、ログインが有効になります。
これがブラウザでどのように表示されるか見てみましょう-
パスワードに3文字しか入力していないため、ログインは無効になっています。 ログインを有効にするには、5文字以上が必要です。 有効な文字の長さを入力して確認しましょう。
メールIDとパスワードの両方が有効であるため、ログインが有効になります。 ログインすると、メールが下部に表示されます。
Angular 4-アニメーション
アニメーションは、html要素間に多くの相互作用を追加します。 Angular2ではアニメーションも利用できました。 Angular 4との違いは、アニメーションはもはや @ angular/core ライブラリの一部ではなく、 app.module.ts にインポートする必要がある別個のパッケージであるということです。
開始するには、次のようにライブラリをインポートする必要があります-
以下に示すように、 BrowserAnimationsModule を app.module.ts のインポート配列に追加する必要があります-
app.module.ts
メインdivには、ボタンと画像を含むdivを追加しました。 animate関数が呼び出されるクリックイベントがあります。 divには、 @ myanimation ディレクティブが追加され、状態として値が指定されます。
アニメーションが定義されている app.component.ts を見てみましょう。
上記のように、.tsファイルで使用されるアニメーション関数をインポートする必要があります。
ここでは、@ angular/animationsからトリガー、状態、スタイル、遷移、およびアニメーションをインポートしました。
ここで、アニメーションコンポーネントを@Component()デコレータに追加します-
トリガーは、アニメーションの開始を定義します。 最初のパラメータは、アニメーションを適用する必要のあるhtmlタグに与えられるアニメーションの名前です。 2番目のパラメーターは、インポートした関数(状態、遷移など)です。
遷移関数は、アニメーションをhtml要素に追加します。 最初の引数は、状態、つまり開始と終了を取ります。 2番目の引数は、アニメーション関数を受け入れます。 アニメート機能を使用すると、トランジションの長さ、遅延、および緩和を定義できます。
lファイルを見て、遷移関数がどのように機能するかを見てみましょう
ここでは、特殊文字[``]を使用して、html要素にスタイルを追加します(存在する場合)。 divには、app.component.tsファイルで定義されたアニメーション名を指定しました。
ボタンをクリックすると、次のようにapp.component.tsファイルで定義されているアニメーション機能を呼び出します-
状態変数が定義され、デフォルト値が小さくなります。 アニメーション機能は、クリック時に状態を変更します。 状態が大きい場合、小さい状態に変換されます。小さい場合は、より大きな値に変換されます。
これは、ブラウザ( http://localhost:4200/ )の出力がどのように見えるかです-
変換関数は y 方向に適用され、Click Meボタンをクリックすると0から100pxに変更されます。 画像は assets/images フォルダーに保存されます。
Angular 4-マテリアル
マテリアルを使用するには、パッケージをインポートする必要があります。 Angular 2にも上記のすべての機能がありますが、@ angular/coreモジュールの一部として利用できます。 Angular 4は、個別のモジュール*@angular/materials.*を作成しました。 これにより、ユーザーは必要な材料をインポートできます。
マテリアルの使用を開始するには、マテリアルとcdkの2つのパッケージをインストールする必要があります。 マテリアルコンポーネントは、高度な機能のためにアニメーションモジュールに依存しているため、同じためのアニメーションパッケージ、つまり@ angular/animationsが必要です。 パッケージは前の章ですでに更新されています。
package.jsonを見てみましょう。 @ angular/material および @ angular/cdk がインストールされます。
マテリアルを操作するためにインストールされるパッケージを強調表示しました。
以下に示すように、親モジュール- app.module.ts にモジュールをインポートします。
上記のファイルでは、@ angular/materialsから次のモジュールをインポートしました。
そして、以下に示すように、インポート配列でも同じことが使用されます-
上記のファイルに、MenuとSideNavを追加しました。
Menu
メニューを追加するには、 <md-menu> </md-menu> が使用されます。 ファイル*および*名前を付けて保存*アイテムが *md-menu の下のボタンに追加されます。 メニュー*が追加されたメインボタンがあります。 同じ参照は、 *[mdMenuTriggerFor] =” menu” を使用し、<md-menu> の#でメニューを使用することにより、<md-menu>に与えられます。
sidenavを追加するには、 <md-sidenav-container> </md-sidenav-container> が必要です。 <md-sidenav> </md-sidenav> は、コンテナに子として追加されます。 *(click)=” sidenav.open()” *を使用してsidenavをトリガーする別のdivが追加されています。 以下は、ブラウザのメニューとサイドナブの表示です-
メニューをクリックすると、以下に示すように、*ファイル*と*名前を付けて保存*という2つのアイテムが表示されます-
材料を使用して日付ピッカーを追加しましょう。 日付ピッカーを追加するには、日付ピッカーを表示するために必要なモジュールをインポートする必要があります。
ここでは、* MdDatepickerModule、MdInputModule、および *MdNativeDateModule などのモジュールをインポートしました。
さて、 app.component.ts は次のようになります-
これは、ブラウザで日付ピッカーが表示される方法です-
角度4-CLI
Angular CLIを使用すると、Angularプロジェクトを簡単に開始できます。 Angular CLIには、プロジェクトを非常に高速に作成して開始するのに役立つコマンドが付属しています。 ここで、プロジェクト、コンポーネント、サービスの作成、ポートの変更などに使用できるコマンドを見てみましょう。
Angular CLIを使用するには、システムにインストールする必要があります。 同じために次のコマンドを使用してみましょう-
新しいプロジェクトを作成するには、コマンドラインで次のコマンドを実行すると、プロジェクトが作成されます。
ng serve//はコンパイルされ、ブラウザでプロジェクトの出力を確認できます-
4200は、新しいプロジェクトの作成時に使用されるデフォルトのポートです。 次のコマンドでポートを変更できます-
次の表に、Angular 4プロジェクトでの作業中に必要ないくつかの重要なコマンドを示します。
Component | ng g component new-component |
Directive | ng g directive new-directive |
Pipe | ng g pipe new-pipe |
Service | ng g service new-service |
Module | ng g module my-module |
新しいモジュール、コンポーネント、またはサービスが作成されるたびに、同じ参照が親モジュール app.module.ts で更新されます。
角度4-例
この章では、Angular 4に関連するいくつかの例を説明します。
まず、 username および password として入力するログインフォームを示す例を作成しました。 正しい値を入力すると、内部に入力され、顧客の詳細を入力できる別のフォームが表示されます。 さらに、ヘッダー、フッター、ユーザーログイン、メインページの4つのコンポーネントを作成しました。
コンポーネントは、次のコマンドを使用して作成されます-
ng gコンポーネントヘッダー
ng gコンポーネントフッター
ng gコンポーネントのユーザーログイン
ng gコンポーネントのメインページ
上記で作成したコンポーネントが追加されます-
コンポーネントも宣言に追加されます-
親の app.componentl に、ユーザーに表示されるファイルの主要な構造を追加しました。
divを作成し、 <app-header> </app-header> 、 <router-outlet> </router-outlet> および <app-footer> </app-footer> を追加しました。
最初にログインフォームを取得し、後でmainpage.componentlを取得するには、以下に示すように app.module.ts で変更を行います-
ルートはコンポーネントの配列を受け取り、デフォルトでuserloginComponentが呼び出されます。
以下は app.component.ts の.tsファイルです。 デフォルトの詳細のみが存在します。
次に、各コンポーネントファイルの詳細を表示します。 まず、ヘッダーコンポーネントを取得します。 新しいコンポーネントでは、4つのファイルが作成されます header.component.ts、header.componentl、header.component.css、およびheader.component.spec.ts 。
header.component.ts
header.componentl
cssは追加していません。 これにより、header.component.cssファイルが空になります。 また、テストケースはここでは考慮されないため、 header.compoent.spec.ts ファイルは空です。
ヘッダーには、水平線を描画します。 ロゴやその他の詳細を追加して、ヘッダーをよりクリエイティブに見せることができます。
ここで、フッターコンポーネントの作成を検討しましょう。
フッターコンポーネントの場合、 footer.component.ts、footer.componentl、footer.component.spec.ts、footer.component.css ファイルが作成されます。
cssを追加していないため、 footer.component.css ファイルは空です。 また、テストケースはここでは考慮されないため、 footer.compoent.spec.ts ファイルは空です。
フッターについては、lファイルに示すように、水平線を描画します。
ここで、userloginコンポーネントがどのように機能するかを見てみましょう。 作成されるuserloginコンポーネントの次のファイルは、* userlogin.component.css、userlogin.componentl、userlogin.component.ts、および userlogin.component.spec.ts。*です。
ファイルの詳細は次のとおりです-
userlogin.componentl
ここでは、 Username と Password の2つの入力コントロールを持つフォームを作成しました。 これはモデル駆動型のフォームアプローチであり、その詳細は第14章-フォームで説明されています。
ユーザー名とパスワードは必須であると考えているため、同じものに対する検証がtsに追加されます。 送信ボタンをクリックすると、コントロールはtsファイルで定義されている onClickSubmit に渡されます。
userlogin.component.ts
フォーム制御と検証の場合、モジュールは次のようにインポートされます
ユーザーとパスワードが正しい場合、別のコンポーネントに移動するためのルーターが必要です。 このため、ルータは以下に示すようにインポートされます-
[送信]をクリックすると、ユーザー名が systemadmin で、パスワードが admin123 であるかどうかを確認できます。 「はい」の場合、「ログイン成功」を示すダイアログボックスが表示され、ルーターはメインページコンポーネントのセレクターであるアプリメインページに移動します。
現在、 userlogin.component.spec.ts ファイルは空です。テストケースがないためです。
ここで、メインページコンポーネントの機能について説明します。 mainpageコンポーネント用に作成されるファイルは、* mainpage.component.ts、mainpage.componentl、mainpage.component.css、および *mainpage.component.spect.ts です。
mainpage.component.ts
名、姓、住所、電話番号を含む顧客フォームを作成しました。 同じ検証は、 ngOnInit 関数を使用して行われます。 [送信]をクリックすると、コントロールは onClickSubmit 関数に移動します。 ここでは、入力された詳細を表示するために使用されるテーブルが表示されます。
customerdataはjsonから配列に変換されるため、テーブルのngForで同じように使用できます。これは、以下に示すようにlファイルで行われます。
mainpage.componentl
ここでは、最初のdivに顧客の詳細があり、2番目のdivにテーブルがあり、入力した詳細が表示されます。 ユーザーログインと顧客の詳細の表示は以下のとおりです。 これは、ログインフォームとヘッダーとフッターのあるページです。
詳細を入力すると、表示は次のようになります
[送信]をクリックすると、ログイン成功を示すダイアログボックスが表示されます。
詳細が無効な場合、以下に示すように無効なログインを示すダイアログボックスが表示されます-
ログインが成功した場合、以下に示すように、顧客の詳細の次のフォームに進みます-
詳細を入力して送信すると、下のスクリーンショットに示すように、顧客の詳細が追加されたことを示すダイアログボックスが表示されます-
上記のスクリーンショットで[OK]をクリックすると、以下のスクリーンショットに示すように詳細が表示されます-