国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ ウェブフロントエンド jsチュートリアル AngularJS とは何ですか? AngularJS_AngularJS の概要

AngularJS とは何ですか? AngularJS_AngularJS の概要

May 16, 2016 pm 04:28 PM

AngularJS とは何ですか?

AngularJS は、動(dòng)的な WEB アプリケーション用に設(shè)計(jì)された構(gòu)造フレームワークです。 HTML をテンプレート言語として使用できるようになり、HTML の構(gòu)文を拡張することで、アプリケーション コンポーネントをより明確かつ簡(jiǎn)潔に構(gòu)築できます。その革新的な點(diǎn)は、データ バインディングと依存関係の注入を使用して、大量のコードを作成する手間を省くことです。これらはすべてブラウザー側(cè)の Javascript を通じて実裝されており、サーバー側(cè)のテクノロジと完全に統(tǒng)合されます。

AngularJS は、アプリケーションの構(gòu)築における HTML の欠點(diǎn)を克服するように設(shè)計(jì)されています。 HTML は、靜的なテキスト表示用に設(shè)計(jì)された?jī)?yōu)れた宣言型言語ですが、WEB アプリケーションの構(gòu)築には弱いです。そこで、ブラウザに希望どおりの動(dòng)作をさせるために、いくつかの作業(yè) (トリックと言ってよいでしょう) を?qū)g行しました。形式日付

通常、動(dòng)的アプリケーションを構(gòu)築する際の靜的 Web ページ テクノロジーの欠點(diǎn)を解決するために、次のテクノロジーを使用します。

1. クラス ライブラリ - クラス ライブラリは、WEB アプリケーションの作成に役立つ関數(shù)のコレクションです。制御するのはコードであり、ライブラリをいつ使用するかを決定するのはあなたです。クラス ライブラリには、jQuery などがあります。

2. フレームワーク - フレームワークは、すでに実裝されている特別な WEB アプリケーションです。これに特定のビジネス ロジックを入力するだけで済みます。ここでのフレームワークは主導(dǎo)的な役割を果たし、特定のアプリケーション ロジックに従ってコードを呼び出します。フレームワークには、ノックアウト、スプラウトコアなどが含まれます。

AngularJS は別のアプローチを使用し、アプリケーションを構(gòu)築する際の HTML 自體の欠點(diǎn)を補(bǔ)おうとします。 AngularJS では、ディレクティブと呼ばれる構(gòu)造を使用してブラウザが新しい構(gòu)文を認(rèn)識(shí)できるようにします。例:

1. データ バインディングには二重中括弧 {{}} 構(gòu)文を使用します。 2. DOM 制御構(gòu)造を使用して DOM フラグメントを反復(fù)または非表示にします。 3. サポートフォームとフォーム検証
4. 論理コードを関連する DOM 要素に関連付ける機(jī)能
5. HTML を再利用可能なコンポーネントにグループ化する機(jī)能。

エンドツーエンドのソリューション

AngularJS は、WEB アプリケーションのエンドツーエンドのソリューションとなることを目指しています。これは、Web アプリケーションの単なる一部ではなく、完全なエンドツーエンドのソリューションであることを意味します。これにより、CRUD (作成の追加、取得のクエリ、更新の更新、削除の削除) アプリケーションを構(gòu)築するときに、AngularJS が非常に「獨(dú)自の」ものになります (元のテキストは獨(dú)自の意見があり、他の方法があまりないことを意味します)。ただし、たとえ「頑固」であっても、その「頑固さ」はアプリケーションを構(gòu)築するときの開始點(diǎn)にすぎず、変更する柔軟性は依然として確保されています。 AngularJS の優(yōu)れた機(jī)能のいくつかは次のとおりです:

1. CRUD アプリケーションの構(gòu)築に使用できるものには、データ バインディング、基本テンプレート識(shí)別子、フォーム検証、ルーティング、ディープ リンク、コンポーネントの再利用、依存関係の挿入が含まれます。

2. テストには、単體テスト、エンドツーエンドのテスト、シミュレーション、自動(dòng)テスト フレームワークが含まれます。

3. ディレクトリ レイアウトを使用してアプリケーションをシードし、開始點(diǎn)としてスクリプトをテストします。

AngularJS のかわいさ

AngularJS は、開発者により高いレベルの抽象化を提供することで、アプリケーション開発を簡(jiǎn)素化します。他の抽象化手法と同様に、ある程度の柔軟性が失われます。言い換えれば、すべてのアプリケーションが AngularJS に適しているわけではありません。 AngularJS は主に CRUD アプリケーションの構(gòu)築に関係します。幸いなことに、WEB アプリケーションの少なくとも 90% は CRUD アプリケーションです。ただし、AngularJS での構(gòu)築に何が適しているかを理解するには、AngularJS での構(gòu)築に何が適していないのかを理解する必要があります。

たとえば、ゲーム、グラフィカル インターフェイス エディター、頻繁で複雑な DOM 操作を行うアプリケーションは CRUD アプリケーションとは大きく異なり、AngularJS での構(gòu)築には適していません。このような狀況では、jQuery のような軽量でシンプルなテクノロジを使用する方が良いかもしれません。

簡(jiǎn)単な AngularJS の例

以下は、フォームを含む典型的な CRUD アプリケーションです。フォーム値は最初に検証され、次にローカル スタイルにフォーマットされた合計(jì)値の計(jì)算に使用されます。最初に理解する必要がある、開発者間で共通の概念をいくつか示します:

1. データモデル (data-model) をビュー (UI) に関連付けます。 2. ユーザー入力を書き込み、読み取り、検証します

3. モデルに従って新しい値を計(jì)算します。

4. 出力形式をローカライズします。

index.html:


コードをコピー コードは次のとおりです:



??? <頭>
??????? <スクリプト src="http://code.angularjs.org/angular-1.1.0.min.js">
??????? <スクリプト src="script.js">
???
???
???????

??????????? 請(qǐng)求書:
???????????

???????????

??????????? <表>
??????????????? 數(shù)量コスト
???????????????
???????????????????
???????????????????
???????????????
???????????
???????????

??????????? 合計(jì): {{數(shù)量 * コスト |通貨}}
???????

???


script.js:
復(fù)制代碼代碼如下:

function InvoiceCntl($scope) {
??? $scope.qty = 1;
??? $scope.cost = 19.95;
}

エンドツーエンドのテスト:
復(fù)制代碼代碼如下:

it('角度バインディングを表示する必要があります', function() {
??? Expect(binding('數(shù)量 * コスト')).toEqual('$19.95');
??? input('數(shù)量').enter('2');
??? input('コスト').enter('5.00');
??? Expect(binding('數(shù)量 * コスト')).toEqual('$10.00');
});
function InvoiceCntl($scope){$scope.qty = 1;$scope.cost = 19.95;}

運(yùn)行效果:

復(fù)制代 代碼如下:

請(qǐng)求書:
數(shù)量、コスト
合計(jì): {{數(shù)量 * コスト |通貨}}

この例を次に説明し、次にこの例の動(dòng)作原理を一緒に見ていきます。マークは AngularJS** 自動(dòng)初期化** (自動(dòng)初期化) を可能にするアプリケーションです。 .min.js">
ボックスに ng-model プロパティを設(shè)定することにより、AngularJS はデータの雙方向認(rèn)証を自動(dòng)的に実行します。

復(fù)制代 代碼如下:
數(shù)量:
コスト:

この入力ボックスのウィジェットは非常に普通に見えますが、次の點(diǎn)に注意すると、非常に優(yōu)れたものになります:

1. ページがロードされると、AngularJS はウィジェットで宣言されたモデル名 (數(shù)量、コスト) に従って同じ名前の変數(shù)を生成します。これらの変數(shù)は、MVC 設(shè)計(jì)パターンの M (モデル) として考えることができます。

2. 上記のウィジェットの入力には特別な機(jī)能があることに注意してください。データを入力していない場(chǎng)合、または入力したデータが無効な場(chǎng)合は、入力ボックスが自動(dòng)的に赤色になります。入力ボックスのこの新機(jī)能により、開発者は CRUD アプリケーションに共通のフィールド検証機(jī)能を?qū)g裝しやすくなります。

最後に、謎の二重中括弧 {{}} を見てみましょう:

コードをコピーします コードは次のとおりです:
合計(jì): {{數(shù)量 * 通貨}}

この {{expression}} タグは AngularJS データ バインディングです。式には、式とフィルターを組み合わせたものを使用できます ({{ 式 | フィルター }})。 AngularJS は、入力データと出力データをフォーマットするためのフィルターを提供します。

上記の例では、{{}} の式は、入力ボックスから取得したデータを乗算し、乗算結(jié)果を現(xiàn)地通貨スタイルにフォーマットしてページに出力するように AngularJS に指示します。

ここで言及しておく価値があるのは、AngularJS メソッドを呼び出したり、フレームワークを使用するような特定のロジックを書いたりしておらず、上記の関數(shù)を完了しただけであるということです。この実裝の背後にある理由は、ブラウザーが動(dòng)的 WEB アプリケーションのニーズを満たすことができるように、靜的ページを生成するために以前よりも多くの作業(yè)を行うようになったためです。 AngularJS は、クラス ライブラリやフレームワークが必要ない點(diǎn)まで、動(dòng)的 WEB アプリケーション開発の敷居を下げます。

AngularJS の「Zen Tao (コンセプト)」

Angular は、ビュー (UI) の構(gòu)築とソフトウェア ロジックの作成を同時(shí)に行う場(chǎng)合、命令型コードは命令型コードよりも宣言型コードの方がはるかに優(yōu)れていると考えていますが、ビジネス ロジックの表現(xiàn)には命令型コードが非常に適しています。

1. DOM 操作とアプリケーション ロジックを分離することは非常に良いアイデアであり、コードの調(diào)整性を大幅に向上させることができます。 2. テストと開発を同等に扱うことは、非常に良い考えです。テストの難易度は、コードの構(gòu)造に大きく依存します。 3. クライアントとサーバーを分離することは特に良い方法であり、これにより両側(cè)での並行開発が可能になり、両側(cè)でのコードの再利用が可能になります。 4. フレームワークが、UI の設(shè)計(jì)からビジネス ロジックの作成、テストに至るまで、開発プロセス全體にわたって開発者をガイドできれば、開発者にとって非常に役立ちます。

5. 「複雑さを単純化して、複雑さをゼロにする」ことは常に良いことです。

AngularJS を使用すると、次の悪夢(mèng)から解放されます:

1. コールバックを使用する: コールバックを使用すると、コードの可読性が損なわれ、コードが斷片化され、元のビジネス ロジックがわかりにくくなります。コールバックなどの一般的なコードを削除することは良いことです。 JavaScript 言語の設(shè)計(jì)により、記述しなければならないコードが大幅に削減されるため、アプリケーションのロジックをより明確に確認(rèn)できるようになります。

2. DOM 要素を操作するコードを手動(dòng)で作成する: DOM の操作は AJAX アプリケーションの非常に基本的な部分ですが、常に「扱いにくく」エラーが発生しやすくなります。宣言的な方法で記述された UI インターフェイスは、アプリケーションの狀態(tài)の変化に応じて変更できるため、低レベルの DOM 操作コードを記述する必要がなくなります。 AngularJS で作成されたほとんどのアプリケーションでは、開発者自身が DOM を操作するコードを作成する必要はなくなりましたが、必要に応じてコードを作成することもできます。

3. UI インターフェイスでのデータの読み取りと書き込み: AJAX アプリケーションの大部分は CRUD 操作です。古典的なプロセスでは、サーバー側(cè)のデータを內(nèi)部オブジェクトに編成し、そのオブジェクトを HTML フォームにコンパイルします。ユーザーがフォームを変更した後、フォームが検証され、エラーがある場(chǎng)合はエラーが表示されます。データは內(nèi)部オブジェクトに再編成され、サーバーに返されます。このプロセスでは繰り返し記述する必要があるコードが多すぎるため、コードは常に特定のビジネス ロジックやビジネスの詳細(xì)ではなく、アプリケーションの実行プロセス全體を記述しているように見えます。

4. 開始する前に、多くの基本コードを記述する必要があります。通常、「Hello World」アプリケーションを?qū)g裝するには、多くの基本コードを記述する必要があります。 AngularJS を使用すると、アプリケーションの正式な作成を簡(jiǎn)単に開始できるいくつかのサービスが提供されます。これらのサービスは、Guice のような依存関係注入を通じてアプリケーションに自動(dòng)的に追加され、特定の開発にすぐに入ることができます。あなたのアプリケーション。特に、自動(dòng)テストの初期化プロセスも完全に把握できます。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國(guó)語版

SublimeText3 中國(guó)語版

中國(guó)語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開発に使用されますが、JavaScriptは主にWebページ開発に使用されます。

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

JSで日付と時(shí)間を操作する方法は? JSで日付と時(shí)間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時(shí)間を処理する場(chǎng)合は、次の點(diǎn)に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお?jiǎng)幛幛筏蓼埂?2。時(shí)間情報(bào)を取得および設(shè)定して、メソッドを設(shè)定でき、月は0から始まることに注意してください。 3.手動(dòng)でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお?jiǎng)幛幛筏蓼?。これらの重要なポイントを?xí)得すると、一般的な間違いを効果的に回避できます。

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

JavaScript vs. Java:開発者向けの包括的な比較 JavaScript vs. Java:開発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 Jun 20, 2025 am 12:46 AM

javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設(shè)定することにより実裝されます。 2。イベントバブルはデフォルトの動(dòng)作であり、UseCaptureはfalseに設(shè)定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動(dòng)的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaとJavaScriptの違いは何ですか? JavaとJavaScriptの違いは何ですか? Jun 17, 2025 am 09:17 AM

JavaとJavaScriptは、異なるプログラミング言語です。 1.Javaは、エンタープライズアプリケーションや大規(guī)模なシステムに適した、靜的に型付けされ、コンパイルされた言語です。 2。JavaScriptは動(dòng)的なタイプと解釈された言語であり、主にWebインタラクションとフロントエンド開発に使用されます。

See all articles