ホームページ  >  記事  >  ウェブフロントエンド  >  angularJs 学習ノート-はじめに_html/css_WEB-ITnose

angularJs 学習ノート-はじめに_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:26:00943ブラウズ

1. angularJs の紹介

AngularJs は MV* JavaScript フレームワーク (MVVM であろうと MVC であろうと、すべて MDV (モデル ドライブ ビュー) の下にあります)、実際には SPA (単一) です。 ) Google -page-application) アプリケーション フレームワークによって起動されます。バックエンドとフロントエンド間のデータの双方向バインディングに使用されます。これは、バックグラウンドでデータを変更すると、その変更がすぐにビューに表示されることを意味します。

ロード時に、angular は dom ツリーと JavaScript を angular アプリにリダイレクトします。 Angular ディレクティブとフィルターを含む HTML はツリー図にコンパイルされ、応答スコープとコントローラーがこのツリーにアタッチされ、内部アプリケーション ループによってビューとモデル間のデータ バインディングが保証されます。モデルが更新されるたびに (Ajax リクエスト経由、またはコントローラーの直接操作によって)、Angular は $digest ループを再実行し、新しいデータとバインドして、すべてが同期していることを確認します。

jsコードはコマンドを使ってdomを操作します。 Angular では、DOM を直接操作することは推奨されません。 DOM はビューによって管理され、データはスコープ内にあり、メソッドはコントローラー内にあります。

3. ng-app

(1) コードプレビュー、angular ファイルの導入

(2) ブラウザでの効果

(3) ソースコード

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <title></title>    <script src="../build/angular.min.js" charset="utf-8"></script>  </head>  <body>      <div class="" ng-app>        hello{{'world'}}      </div>  </body></html>

4. ng-model

(1) コードプレビュー

(2) ブラウザでの効果

(3) ソースコード

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <title></title>    <script src="../build/angular.min.js" charset="utf-8"></script>  </head>  <body>    <div class="" ng-app>      your name :      <input type="text" name="name" value="" ng-model="yourname" placeholder="angular">      <hr>      hello {{yourname || 'angular'}}    </div>  </body></html>

5.ng-controller

(1)コードプレビュー

(2) ブラウザエフェクト

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <title>hello cynthia</title>    <script src="../build/angular.min.js" charset="utf-8"></script>  </head>    <script type="text/javascript">    var app = angular.module('app',[]);    app.controller('helloCynthia',function($scope){      $scope.eleName = "cynthia"    })  </script>    <body>    <div class="" ng-app='app' ng-controller='helloCynthia'>      hello,{{eleName}}    </div>  </body></html>

6 。 ng-repeat

(1) コードプレビュー

( 2) ブラウザ効果

(3) ソースコード

rree

7.example

(1) コードプレビュー

(2) ブラウザ効果(ユーザーAfter)入力してボタンをクリックすると下に入力が表示されますが、現在は未定義と表示されています (3) ソースコード

8.filters

Angular が提供するフィルターは、 Unix のパイプライン。例えば、Webページ上に価格$を表示したい場合、次のように書くことができます

(1) ソースコードのプレビュー

(2) ブラウザでの効果

(3) ソースコード

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <title></title>    <script src="../build/angular.min.js" charset="utf-8"></script>  </head>  <script type="text/javascript">    var app = angular.module('ngrepeat',[])    app.controller('ngrepeatCtr',function($scope){      $scope.developers=[        {name:'wuqian',country:'china'},        {name:'cynthia',country:'usa'},        {name:'wupore',country:'canada'},        {name:'selene',country:'english'}      ]    })  </script>  <body>    <div class="" ng-app='ngrepeat' ng-controller='ngrepeatCtr'>      <ul>        <li ng-repeat='person in developers'>          {{person.name}} from {{person.country}}        </li>      </ul>    </div>  </body></html>

9. フィルタを使用して選択範囲を削除します

(1) コードプレビュー

(2) ブラウザ効果

(3) ソースコード

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <title></title>    <script src="../build/angular.min.js" charset="utf-8"></script>  </head>  <script type="text/javascript">    var app = angular.module('appName',[]);    app.controller('controllerName',function($scope){      $scope.clickName = function(){        $scope.message = 'Name : ' + $scope.userInput;      }    })  </script>  <body>    <div class="" ng-app='appName' ng-controller='controllerName'>      <p>        what's your name ?      </p>      <br>      <input type="text" name="name" placeholer="input your name here" ng-model=‘userInput’>      <button type="button" name="button" ng-click='clickName()'>click here</button>      <h3>{{message}}</h3>    </div>  </body></html>

10. カスタムフィルター

( 1) コードプレビュー

(2) ブラウザエフェクト(最初の文字が大文字になります)

(3) ソースコード

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <title></title>    <script src="../build/angular.min.js" charset="utf-8"></script>  </head>  <body>      <div class="" ng-app>        <span>iphone : {{63573 | currency}}</span>      </div>  </body></html>

11 .services

コントローラー間でデータを共有する これは非常に便利ですが、各コントローラーには独自のスコープがあるため、他のコントローラーにバインドすることはできません。これに対して Angular が提供するソリューションはサービスです。

Angular には、http リクエストや非同期 Promise プログラミング モードなど、多くの組み込みサービスがあります。これは angular (依存性注入) の核心への鍵でもあります。

サービスはすべてシングルトンです。つまり、アプリケーション内で各サービス オブジェクトは 1 回だけインスタンス化されます。これは主に、特定の機能に必要なメソッドをまとめたインターフェイスを提供する役割を果たします。最も一般的な方法は、angular.module API のファクトリ メソッドです:

例: サービスを介して oneCtrl と twoCtrl の間でデータ ユーザーを共有する

(1) ソース コード プレビュー

(2) ブラウザでの効果

(3) ソースコード

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <title></title>    <script src="../build/angular.min.js" charset="utf-8"></script>  </head>  <script type="text/javascript">    var app = angular.module('ngrepeat',[])    app.controller('ngrepeatCtr',function($scope){      $scope.developers=[        {name:'wuqian',country:'china'},        {name:'cynthia',country:'usa'},        {name:'wupore',country:'canada'},        {name:'selene',country:'english'}      ]    })  </script>  <body>    <div class="" ng-app='ngrepeat' ng-controller='ngrepeatCtr'>      <input type="text" name="name" value="" ng-model='search'>      <ul>        <li ng-repeat='person in developers | filter:search'>          {{person.name}} from {{person.country}}        </li>      </ul>    </div>  </body></html>

12.ng-show and ng-hide

(1) ソースコードのプレビュー

(2) ブラウザでの効果:ボタン 内容の表示/非表示

(3) ソースコード

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <title>hello cynthia</title>    <script src="../build/angular.min.js" charset="utf-8"></script>  </head>  <script type="text/javascript">    var app = angular.module('app',[]);    // 自定义filter    app.filter('capt',function(){      return function(input,param){        return input.substring(0,1).toUpperCase()+input.substring(1);      }    })  </script>  <body>    <div class="" ng-app='app'>      <span>{{'this is some text' | capt}}</span>    </div>  </body></html>

13.

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