AngularJSを使用してWebアプリを構築するための初心者向けガイド

anglejsホームページ

Googleのウェブアプリフレームワークに参加する

あなたがプロのJavaScript開発者なら、おそらく聞いたことがあるでしょう Ember.js (オープンソースのJavaScriptフレームワーク)および Backbone.js (RESTful JSONインターフェースを備えたJavaScriptライブラリ)。しかし、あなたが精通していない場合 AngularJS それでも、WebアプリケーションのHTMLを実際に強化できる非常に魅力的な機能のいくつかを見逃すことになります。

ここでは、AngularJS、その傑出した機能とそれを開始するプロセスを含む、超英雄的なJavaScriptMVWフレームワークの味を紹介します。



うまくいけば、これは、適切に設計された保守可能なリッチWebアプリケーションの開発に役立つだけでなく、今後のプロジェクトにAngularJSを選択する確かな理由にもなります。さぁ、始めよう!

Photoshopでネオンライトを作成する方法

01. AngularJSとは何ですか?

Googleによって構築されたAngularJSは、Web開発者がフロントエンドの開発とテストの両方を簡単に行えるように設計されたオープンソースのWebアプリケーションフレームワークです。 AngularJSの主な目標は、MVC(Model-view-controller)機能を使用してWebアプリケーションを拡張することです。これは、完全に拡張可能で、ライブラリの依存関係なしで実行され、他のライブラリともうまく機能するクライアント側のJavaScript MVC / MVVMフレームワークです。さらに、特定のニーズに合わせてすべての機能を変更または置換することもできます。

AngularJSは、当時GoogleのエンジニアであったAdam AbronsとMiš koHeverymによって2009年に開発されました。公式ウェブサイトで述べたように、これは「動的ウェブアプリの構造フレームワーク」であり、クライアント側でJavaScript、CSS、およびHTMLのみを必要とする1ページのウェブアプリケーションを作成するのに最適です。

これにより、HTMLをテンプレート言語として利用でき、HTMLの構文を拡張して、Webアプリケーションのコンポーネントをきちんと簡潔に表現できます。 AngularJSは、JavaScriptコードの構造を改善し、テストを容易にし、サーバーテクノロジーに依存性注入を利用する方法をブラウザーに教えます。

AngularJSの使用方法

AngularJSの使用を開始するのは非常に簡単です。 HTMLスクリプトにいくつかの属性を設定することで、わずか5分でシンプルなAngularアプリを作成できます。これらは:

1.タグに「ng-app」ディレクティブを含めます。ページ上でAngularJSを実行し、ページをAngularアプリケーションとして定義します。

2. Angularタグを、タグが終了するページの下部に配置します。

3.通常のHTMLを追加します。 HTML属性はAngularJSディレクティブにアクセスするために使用されますが、式の評価は二重括弧表記で行われます。

Today's tasks

  • {{task.name}}

ここで、ディレクティブng-controllerは名前空間を定義します。ここに、データを制御し、HTMLの式を評価するためのAngularJSを配置できます。 ng-repeatディレクティブはAngularリピーターオブジェクトですが、表示するタスクがある限り、Angularにリスト要素を作成するように要求します。

今日のフレームワークのほとんどは既存のツールのバンドルにすぎませんが、AngularJSは次世代のフレームワークであり、開発者だけでなく設計者にも同様に役立つ非常に魅力的な機能を備えています。以下は、開発者が将来のWebアプリケーションを素晴らしいものにするのに役立つAngularJSのいくつかの素晴らしい機能です...

70インチテレビブラックフライデー2016

指令

ディレクティブは、AngularJSの最も強力で魅力的な機能の1つです。これらを使用すると、HTMLを拡張でき、AngularJSがそのアクションをページにプラグインするために使用されます。カスタムで再利用可能なHTMLタグを指定できます。これを使用して、DOM属性を操作し、特定の要素の動作を緩和できます。すべてのディレクティブはng-で始まり、MVCアプリケーションとは別のスタンドアロン要素として設計され、HTML属性に配置されます。



注目すべきAngularJSディレクティブのいくつかは次のとおりです。

  • ng-app:このディレクティブは、アクティブ化する場所をAngularに指示します。ページをAngularアプリケーションとして定義するには、次の簡単なコードを使用する必要があります。
  • ng-bind:このディレクティブは、指定された式の値でHTML要素のテキストコンテンツを変更し、その式の値が変更されたときにテキストを更新するようにAngularに指示します。
  • ng-model:ng-bindと非常に似ていますが、ビューをモデルにバインドします。これは、select、textarea、inputなどの他のディレクティブで必要です。
  • ng-class:クラス属性の動的ロードを許可します。
  • ng-controller:このディレクティブを使用すると、HTML式を評価するためのJavaScriptコントローラークラスを指定できます。
  • ng-repeat:指定されたループ変数が設定されているアイテムをコレクション内で簡単にループします。
  • ng-hideおよびng-show:このディレクティブは、ブール式の値を使用して、要素を表示するかどうかを決定します。
  • ngIf:条件が真の場合に、コンパイルされた要素のクローンをDOMに再挿入できるようにする基本的なifステートメントディレクティブ。条件がfalseの場合、要素がDOMから削除されます。

以下は、イベントをリッスンし、その結果として$ scopeを更新するディレクティブの例です。

myModule.directive('myComponent', function(mySharedService) { return { restrict: 'E', controller: function($scope, $attrs, mySharedService) { $scope.$on('handleBroadcast', function() { $scope.message = 'Directive: ' + mySharedService.message; }); }, replace: true, template: '' }; });

このカスタムディレクティブは、次のように使用できます。

双方向のデータバインディング

データバインディングは、おそらくAngularJSの最も支配的で注目すべき機能です。サーバーバックエンドの負担を大幅に軽減することで、開発者が大量のコードを作成する手間を省きます。一般的なWebアプリケーションでは、コードベースの80%が、DOMの操作、トラバース、およびリッスンに専念しています。データバインディングにより、このコードは非表示になるため、アプリケーションの他の重要なことに集中できます。

従来、ほとんどのテンプレートシステムには一方向のデータバインディングがあります。つまり、モデルコンポーネントとテンプレートコンポーネントを1つのビューにマージします。マージ後、モデルへの変更はビューに自動的に反映されません。これらの変更を反映するには、開発者はDOM要素と属性を手動で操作する必要があります。ユーザーがビューに変更を加えると、このプロセスはより複雑で面倒になります。開発者は相互作用を解釈する必要があるため、それらをモデルにマージして、ビューを更新します。

PhotoshopレイヤーをAfterEffectsにインポートする

一方向のデータバインディング図

http://docs.angularjs.orgの画像提供

対照的に、AngularJSは、モデルとDOMの間のデータの同期を処理することにより、より適切で異なる方法でデータバインディングを実行し、その逆も同様です。

双方向のデータバインディング図

http://docs.angularjs.orgの画像提供

以下は簡単な例で、入力値の

鬼ごっこ。

Name:

Hello, {{yourName}}!

依存性注入

AngularJSには、開発者がアプリケーションを簡単に開発、理解、テストできるようにするインジェクターサブシステムが組み込まれています。 AngularJSの依存性注入は、コンポーネントの作成、依存関係の取得方法の処理、および要求に応じて他のコンポーネントで使用できるようにする役割を果たします。

依存性注入を利用することで、AngularJSは従来のサーバー側サービスをクライアント側のWebアプリケーションにもたらします。これにより、バックエンドの負担が軽減され、Webアプリケーションが大幅に軽量化されます。

コアAngularJSサービスにアクセスする場合は、特定のサービスをパラメーターとして追加する必要があります。 AngularJSは、そのサービスを使用することを自動的に認識し、インスタンスを利用できるようにします。



function EditCtrl($scope, $location, $routeParams) { // Write something here... }

これに加えて、独自のカスタムサービスを定義し、それらをインジェクションにアクセスできるようにすることができます。

angular. module('MyServiceModule', []). factory('notify', ['$window', function (win) { return function (msg) { win.alert(msg); }; }]); function myController(scope, notifyService) { scope.callNotify = function (msg) { notifyService(msg); }; } myController.$inject = ['$scope', 'notify'];

テンプレート

AngularJSでは、テンプレートはAngular固有の属性と要素を含むHTMLで記述されています。テンプレートをコントローラーおよびモデルからの情報と組み合わせることにより、AngularJSはブラウザーで動的ビューをレンダリングします。

以下は、使用できるAngular要素と属性です。

  • フィルタ:表示用のデータのフォーマットは、この要素によって行われます。
  • フォームコントロール:ユーザー入力の検証に使用されます。
  • マークアップ:二重中括弧表記{{}}を使用して、式を要素にバインドします。
  • ディレクティブ:再利用可能なDOMコンポーネントをレンダリングするか、既存のDOM要素を延長する要素または属性。

以下のコードは、ディレクティブとマークアップを含むテンプレートを示しています。

macbook pro13インチケースベストバイ
{{buttonText}}

一般的なアプリケーションでは、テンプレートのCSS、HTML、およびAngularディレクティブが単一のHTMLファイル(通常はindex.html)に含まれています。

テスト

JavaScriptは動的であり、優れた表現力で解釈されますが、コンパイラーの助けをほとんど必要としません。したがって、AngularJSチームは、JavaScriptコードが一連の厳しいテストを通過する必要があることをよく理解しています。そのため、AngularJSをゼロからテスト可能に設計し、Webアプリケーションのテストを可能な限り簡単にしました。

AngularJSは、依存性注入を最大限に活用し、モックが事前にバンドルされており、動作とビューの分離を促進します。エンドツーエンドのテストのために、AngularJSにはProtractorと呼ばれるエンドツーエンドのテストランナーがあります。これは、AngularJSの内部動作を理解してテストの不安定さを排除し、アプリケーションとのユーザーインタラクションをシミュレートします。

AngularJSのもう1つの種類のテストは、コードの個々のユニットをテストできるユニットテストです。さらに、AngularチームはChrome拡張機能も構築しました。 AngularJS Batarang 、これにより、開発者はパフォーマンスのボトルネックを簡単に検出し、ブラウザーでアプリケーションをデバッグできます。

Ajeet Yadavは、プロのWeb開発者であり、 wordpressintegration.com 、高品質のPhotoshopからWordPressへのテーマ/テンプレート変換サービスを提供する評判の高いWeb開発会社。フォローする @Wordpress_INT Twitter上で。