ホームページ ウェブフロントエンド jsチュートリアル AngularJS_AngularJS の入門知識のための MVW クラス フレームワークのプログラミングのアイデアについてのディスカッション

AngularJS_AngularJS の入門知識のための MVW クラス フレームワークのプログラミングのアイデアについてのディスカッション

May 16, 2016 pm 04:28 PM
angularjs プログラミングのアイデア

この記事では、2 つの単純なビジネス要件を実装することで、AngularJS と従来の JavaScript コントロール DOM 実装の違いを調査し、一般的な Web フロントエンド開発における MVW などのフレームワークのプログラミングの考え方を理解しようとします。

この要件は非常に一般的です。たとえば、2 レベルのメニューでは、最初のレベルのメニュー項目がクリックされたときに、対応するサブメニュー項目が表示または非表示になる必要があります。

jQuery 実装:

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




  • アイテム 1

      < li class = "child_item"> item child 1</li>
                                                                                         

    //javascript

    $('li.parent_item').click(function(){
    $(this).children('ul.child').toggle();
    })

AngularJS 実装:

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



  • アイテム 1

                                                                                                                                                                                                                                         




    DOM を操作する従来の方法については再度説明しません。 AngularJS の実装はコードよりもはるかに洗練されており、HTML バージョンのみで十分です。上記のコードは、AngularJS の次のナレッジ ポイントを使用します:
1.

ディレクティブ

2.

ng-click

ng-hide は両方ともフレームワークに付属するディレクティブです。前者は HTML 要素 (. li) クリックすると、Expression (expression) Hide_child = !hide_child が実行されます。まず、割り当てられた式の結果 (ブール値) (CSS によって実装) に基づいて HTML 要素を表示するかどうかを制御する ng-hide ディレクティブを見てみましょう。つまり、変数 hide_child が true の場合、ul は非表示になり、それ以外の場合はその逆の結果になります。 ここでの Hide_child は、実際には $scope

の変数です。ただし、その値を変更するには、コントローラー コントローラー内でメソッドをラップすることもできます。ただし、現在のステートメントは比較的単純で、In に直接記述することができます。命令の割り当て。

上記の簡単なコード分析を通じて、AngularJS の 2 つの明らかな特徴がわかります。

1. DOM の操作は命令と式によって密閉されており、単純なコードのみで余分な JavaScript コードを節約できます

2. 命令と式の適用は HTML 内でのみ直接ネストされます。これは、jQuery が推奨する目立たない JavaScript コード スタイルとは若干異なります

最初に別の要件を見てから、上記の結論を詳しく説明しましょう。

要件 2: div をクリックして、フォーム内のラジオ ボタンの選択をトリガーします

従来の HTML Form 要素は、今日のモバイル デバイスでの操作にはあまり適していません。たとえば、ラジオ ボタンのコンポーネントを制御するには、タッチ スクリーン上で正確な位置を指定する必要がありますが、指の位置は非常に大まかです。対応するLabelコントロールを追加する方法が一般的ですが、テキスト自体の画面比率が理想的ではなく、明確な情報伝達効果がありません。そのため、比較的面積の大きい div タグや li タグは間接的に操作することが一般的です。

jQuery 実装:


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



       

  •                     id="オプション1" />
           
       

// javascript
$('li.selection').click(function(){
    $(this).children('input[type="radio"]').click();
})

AngularJS の機能:

复制代 代码如下:



       
  •         ng-click="モデル.オプション = オプション.値"
            ng-class="{アクティブ: モデル.オプション == オプション.値}" >
                        ng-model="model.option"
                value="{{option.value}}"
                id="オプション1" />
           
       


このソリューションでは、追加の JavaScript コードを使用せず、さらにいくつかの命令を使用しました。比較と参照のために、2 つのディレクティブ ng-click と ng-model の式のみに注目します。

まず、input 要素の ng-model ディレクティブを見てみましょう。ここでの割り当ては、テンプレートの入力を $scope.model オブジェクトの option 属性に関連付けて、in を取得することを意味します。 - データの詳細な理解。バインディングについては、データ バインディングを参照してください。この指定された関連付けにより、テンプレート コントロールをデータ モデルに直接バインドできるようになり、このバインディングは双方向です。これは、ユーザーがコントロールの値を変更すると (ラジオ入力を確認する)、Model オブジェクトの値が変更されると、同時に対応する Model オブジェクトが再割り当てされ (model.option)、テンプレートも反映変更に対応します。これは実際には上記の jQuery 実装では実現されません。

したがって、AngularJS のデータ バインディングを通じて、li 要素をクリックして間接的に入力をトリガーするプロセスは次のようになります:

1. li タグをクリックして、model.option に値を割り当てます。 2. Model オブジェクトを変更し、対応する入力コントロールを見つけます (value の値は、model.option の値です)。 3. 入力コントロール
の selected 属性をアクティブ化します。
上記の 2 つのケースを通じて、Web フロントエンドの動作について新たな理解を得ることができました。

まず、技術的な実装に関しては、新しい命令、式、データ バインディング、その他の概念を導入することで、ユーザー間の対話に限定された JavaScript コードだけでなく、まったく新しい方法で DOM を操作できるようになります。そしてHTMLコンポーネントが実現します。この考え方の変化は非常に大きいです。

今世紀初頭に動的 Web プログラミングが台頭して以来、サーバーサイド プログラミング テクノロジは向上してきました。 CGI/PHP/ASPの始まりから、言語とプラットフォームは.NET対Javaを生み出し、開発効率とソフトウェアプロセスはMVCフレームワーク/ORM/AOPなどを促進し、パフォーマンスとビッグデータはNodeJS/NoSQL/をもたらしました。 Hadoop など、ブラウザ フロントエンドの技術要件はそれほど急進的ではないようです。一方では、B/S モデルのビジネス ニーズのほとんどはサーバーとデータベースを通じて満たされますが、他方では、ブラウザ自体にはプラットフォームごとに違いがあり、スクリプト言語とレンダリングの標準と互換性がありません。テクノロジーには限界があり、コンピューティング能力に限界があり、安全性も考慮されています。

この場合、ブラウザ側の要件は、ほとんどの場合、ページのレンダリングと単純なユーザー操作のみを考慮する必要があります。したがって、HTML/DOM と JavaScript/CSS によって、フロントエンドの主要な作業が実現されます。したがって、以前はフロントエンド ワーカーは存在せず、Web デザイナーだけが必要でした。徐々にフロントエンドの要件が増え、jQuery は DOM を操作するための JavaScript カプセル化ライブラリとして最も広く使用されるようになりました。現段階では、jQuery/JavaScript の主なタスクは、まだユーザーのブラウザ端末のプレゼンテーションと対話のためのツールとしてだけです。

jQuery の起源を理解すると、Unobtrusive JavaScript など、以前に追求したルールの一部が、DOM と JavaScript コード ロジックを分離するために実装の手段と方法に限定されていたことがわかります。よりメンテナンスしやすい方法を優先しました。 JavaScript のフロントエンドの需要が高まった後、多くの MVC/MVP フロントエンド フレームワークが登場したほか、AngularJS のいわゆる

MVW (Model-View-Whatever)

や、フリーサイズのフレームワークも登場しました。 JavaScript と DOM に対するすべてのアプローチが変更されました。当初は、インターフェイスの表示とユーザーの対話を直接操作することを考えていましたが、現在では、クライアント側のデータ バインディング、豊富な命令、依存関係の挿入が私たちを待っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

入門から習得まで、2022 年の最新 5 つの angularjs チュートリアル 入門から習得まで、2022 年の最新 5 つの angularjs チュートリアル Jun 15, 2017 pm 05:50 PM

Javascript は、コードの構成、コードのプログラミング パラダイム、およびオブジェクト指向理論の点で非常にユニークな言語です。しかし、JavaScript が 20 年間主流であったとはいえ、jQuery、Angularjs、さらには React などの人気のあるフレームワークを理解したい場合は、「Black Horse Cloud Classroom JavaScript Advanced Framework」を見てください。デザインビデオチュートリアル」。

PHP と AngularJS を使用して応答性の高い Web サイトを構築し、高品質のユーザー エクスペリエンスを提供します PHP と AngularJS を使用して応答性の高い Web サイトを構築し、高品質のユーザー エクスペリエンスを提供します Jun 27, 2023 pm 07:37 PM

今日の情報化時代において、ウェブサイトは人々が情報を入手し、コミュニケーションを図るための重要なツールとなっています。レスポンシブな Web サイトはさまざまなデバイスに適応し、ユーザーに高品質のエクスペリエンスを提供できます。これは、現代の Web サイト開発のホットスポットとなっています。この記事では、PHP と AngularJS を使用して応答性の高い Web サイトを構築し、高品質のユーザー エクスペリエンスを提供する方法を紹介します。 PHP の概要 PHP は、Web 開発に最適なオープンソースのサーバー側プログラミング言語です。 PHP には、学びやすさ、クロスプラットフォーム、豊富なツール ライブラリ、開発効率など、多くの利点があります。

PHP と AngularJS を使用して Web アプリケーションを構築する PHP と AngularJS を使用して Web アプリケーションを構築する May 27, 2023 pm 08:10 PM

インターネットの継続的な発展に伴い、Web アプリケーションは企業情報構築の重要な部分となり、最新化作業に必要な手段となりました。 Web アプリケーションの開発、保守、拡張を容易にするために、開発者は開発ニーズに合った技術フレームワークとプログラミング言語を選択する必要があります。 PHP と AngularJS は非常に人気のある 2 つの Web 開発テクノロジであり、それぞれサーバー側とクライアント側のソリューションであり、これらを組み合わせて使用​​すると、Web アプリケーションの開発効率とユーザー エクスペリエンスを大幅に向上させることができます。 PHPPHPの利点

PHP プログラミングで AngularJS を使用するにはどうすればよいですか? PHP プログラミングで AngularJS を使用するにはどうすればよいですか? Jun 12, 2023 am 09:40 AM

Web アプリケーションの人気に伴い、フロントエンド フレームワーク AngularJS の人気も高まっています。 AngularJS は、Google が開発した JavaScript フレームワークで、動的な Web アプリケーション機能を備えた Web アプリケーションの構築に役立ちます。一方、バックエンド プログラミングの場合、PHP は非常に人気のあるプログラミング言語です。サーバーサイド プログラミングに PHP を使用している場合、PHP と AngularJS を使用すると、Web サイトにさらに動的な効果がもたらされます。

Flask と AngularJS を使用してシングルページ Web アプリケーションを構築する Flask と AngularJS を使用してシングルページ Web アプリケーションを構築する Jun 17, 2023 am 08:49 AM

Web テクノロジーの急速な発展に伴い、シングル ページ Web アプリケーション (SinglePage Application、SPA) は、Web アプリケーション モデルとしてますます人気が高まっています。従来の複数ページの Web アプリケーションと比較して、SPA の最大の利点は、ユーザー エクスペリエンスがよりスムーズであり、サーバーのコンピューティング負荷も大幅に軽減されることです。この記事では、FlaskとAngularJSを使って簡単なSPAを構築する方法を紹介します。 Flask は軽量の Py です

PHP と AngularJS を使用してオンライン ファイル管理プラットフォームを開発し、ファイル管理を容易にする PHP と AngularJS を使用してオンライン ファイル管理プラットフォームを開発し、ファイル管理を容易にする Jun 27, 2023 pm 01:34 PM

インターネットの普及に伴い、ネットワークを使用してファイルを転送したり共有したりする人が増えています。ただし、さまざまな理由により、FTP などの従来の方法をファイル管理に使用しても、現代のユーザーのニーズを満たすことができません。したがって、使いやすく、効率的で安全なオンライン ファイル管理プラットフォームを確立することがトレンドになっています。この記事で紹介するオンライン ファイル管理プラットフォームは、PHP と AngularJS をベースにしており、ファイルのアップロード、ダウンロード、編集、削除などの操作を簡単に実行でき、ファイル共有、検索、検索などの一連の強力な機能を提供します。

フロントエンド開発に PHP と AngularJS を使用する方法 フロントエンド開発に PHP と AngularJS を使用する方法 May 11, 2023 pm 05:18 PM

インターネットの普及と発展に伴い、フロントエンド開発の重要性がますます高まっています。フロントエンド開発者として、私たちはさまざまな開発ツールとテクノロジーを理解し、習得する必要があります。その中でも、PHP と AngularJS は非常に便利で人気のあるツールです。この記事では、これら 2 つのツールをフロントエンド開発に使用する方法を説明します。 1. PHP の概要 PHP は、人気のあるオープン ソースのサーバー側スクリプト言語であり、Web 開発に適しており、Web サーバーやさまざまなオペレーティング システム上で実行できます。 PHP の利点は、シンプルさ、スピード、利便性です。

AngularJS の基本の紹介 AngularJS の基本の紹介 Apr 21, 2018 am 10:37 AM

この記事の内容は AngularJS の基本的な入門に関するもので、必要な友人に共有します。

See all articles