亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

Angularjs 基礎入門

2024-05-06 16:12:56
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Angularjs 基礎入門的一些知識,需要的朋友可以參考下
 
 

針對于這個其實我不太清楚應該針對于哪些人或者說不知道從哪開始寫,所以這里我就按照一種簡單的思路開始寫

1.angular.element
2.angular.Bootstrap

我們非常清楚ng-app應用到節點,angular自動幫你初始化,初始化的過程分為如下幾個步驟

1.angular會在document load的時候自動初始化,首先會找到ng-app這個指令指定的節點。
2.加載與module相關的指令
3.創建與應用相關的injector(依賴管理器)
4.以制定的ng-app為根節點,開始對Dom進行compile

現在我們自己初始化一下,做一個等同于ng-app這個指令的東西。angular.element這個就是包裝,包裝原始DOM元素或HTML字符串作為jQuery元素。angular.Bootstrap可以手動初始化腳本,我們用這兩個來初始化這個腳本

 

復制代碼代碼如下:

<!DOCTYPE HTML>
  <html lang="zh-cn">
  <head>
  <meta charset="UTF-8">
  <title>Bootstrap-manual</title>
  <style type="text/css">
  .ng-cloak {
  display: none;
  }
  </style>
  </head>
  <body>
  這里是ng-app外面的~~{{1+2}}
  <div id="widuu" >這里是ng-app里面~~~ {{1+2}}</div>
  <script src="angular.min.js" type="text/javascript"></script>
  <script type="text/javascript">
  angular.element(document).ready(function() {
  angular.bootstrap(angular.element(document.getElementById("widuu")));
  });
  </script>
  </body>
  </html>

 

2.compiler

我們清楚的看到angularjs的官方文檔上邊都是駝峰式命名法,譬如ngApp、ngModule、ngBind等等這些都是相關的指令,其中html compiler就是允許我們自己定義元素 屬性和標簽,Angular將這些附加行為稱為directives。
官方文檔對compiler的解釋是這樣的

 

復制代碼代碼如下:

Compiler
  Compiler is an Angular service which traverses the DOM looking for attributes. The compilation process happens in two phases.

 

  Compile: traverse the DOM and collect all of the directives. The result is a linking function.

  Link: combine the directives with a scope and produce a live view. Any changes in the scope model are reflected in the view, and any user interactions with the view are reflected in the scope model. This makes the scope model the single source of truth.

  Some directives such as ng-repeat clone DOM elements once for each item in a collection. Having a compile and link phase improves performance since the cloned template only needs to be compiled once, and then linked once for each clone instance.

 

compiler是angular的一個(service),負責遍歷dom節點和查找屬性,編譯分為兩個階段:

1.編譯:遍歷節點和收集所有的directives,返回一個鏈接函數linking function
2.鏈接:將directives綁定到一個作用域(scope)中,創建一個實況視圖(live view)。在scope中的任何改變,將會在視圖中得到體現(更新視圖);任何用戶對模版的活動(改變),將會體現在scope model中(雙向綁定)。這使得scope model能夠反映正確的值。
一些directives,諸如ng-repeat,會為每一個在集合(collection)中的元素復制一次特定的元素(組合)。編譯和鏈接兩個階段,使性能得以提升。因為克隆出來的模版(template)只需要編譯一次,然后為每一個集合中的元素進行一次鏈接(類似模版緩存)。

3.一步一步創建自己的directive

1.了解directive
首先了解,directive是按照駝峰式命名法,如ngModule,當編譯的時候匹配是這樣的,舉例如下:

 

復制代碼代碼如下:

<input ng-model="foo">
  <input data-ng:model="foo">
 

 

directive可以使用x-或者data-作為前綴,可以使用:, -, 或者 _等分隔符來轉換駝峰式命名方法,如下所示:

 

復制代碼代碼如下:

<span ng-bind="name"></span> <br/>
  <span ng:bind="name"></span> <br/>
  <span ng_bind="name"></span> <br/>
  <span data-ng-bind="name"></span> <br/>
  <span x-ng-bind="name"></span> <br/>

 

一般我們使用ng-bind對應ngBind,這種格式
$compile可以匹配directive基于元素名稱,屬性,類名以及注釋

 

復制代碼代碼如下:

<my-dir></my-dir>
  <span my-dir="exp"></span>
  <!-- directive: my-dir exp -->
  <span class="my-dir: exp;"></span>

 

 在編譯過程中,compiler通過$interpolate服務匹配文本與屬性中的嵌入表達式(如{{something}})。這些表達式將會注冊為watches,并且作為digest cycle的一部分,一同更新。下面是一個簡單的interpolation:
<img src="img/{{username}}.jpg"/>Hello {{username}}!
  
2.編譯的步驟

HTML“編譯”的三個步驟:

1. 首先,通過瀏覽器的標準API,將HTML轉換為DOM對象。這是很重要的一步。因為模版必須是可解析(符合規范)的HTML。這里可以跟大多數的模版系統做對比,它們一般是基于字符串的,而不是基于DOM元素的。
2. 對DOM的編譯(compilation)是通過調用$comple()方法完成的。這個方法遍歷DOM,對directive進行匹配。如果匹配成功,那么它將與對應的DOM一起,加入到directive列表中。只要所有與指定DOM關聯的directive被識別出來,他們將按照優先級排序,并按照這個順序執行他們的compile() 函數。directive的編譯函數(compile function),擁有一個修改DOM結構的機會,并負責產生link() function的解析。$compile()方法返回一個組合的linking function,是所有directive自身的compile function返回的linking function的集合。
3. 通過上一步返回的linking function,將模版與scope連接起來。這反過來會調用directive自身的linking function,允許它們在元素上注冊一些監聽器(listener),以及與scope一起建立一些watches。這樣得出的結果,是在scope與DOM之間的一個雙向、即時的綁定。scope發生改變時,DOM會得到對應的響應。

 

復制代碼代碼如下:

var $compile = ...; // injected into your code
  var scope = ...;
  var html = '<div ng-bind='exp'></div>';
  // Step 1: parse HTML into DOM element
  var template = angular.element(html);
  // Step 2: compile the template
  var linkFn = $compile(template);
  // Step 3: link the compiled template with the scope.
  linkFn(scope);

 

ngAttr屬性綁定

 

復制代碼代碼如下:

<svg>
  <circle ng-attr-cx="{{cx}}"></circle>
  </svg>

 

今天就寫到這里,明天開始寫創建directive ~~~控制篇幅不要太長,這章主要概念的多~~~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级淫片videoshd| 成人精品视频99在线观看免费| 亚洲美女av电影| 91久久精品久久国产性色也91| 欧美激情久久久久| 日韩有码在线视频| 欧美日韩综合视频网址| 久久久99久久精品女同性| 91性高湖久久久久久久久_久久99| 亚洲最大的免费| 另类美女黄大片| 日韩欧美在线视频免费观看| 欧日韩在线观看| 国产精品久久久久77777| 久久97精品久久久久久久不卡| 黄色成人av网| 日韩中文在线中文网在线观看| 亚洲色图综合久久| 97视频在线免费观看| 亚洲电影免费观看高清完整版在线观看| 亚洲91精品在线观看| 精品福利在线视频| 亚洲美女av黄| 亚洲国产欧美一区二区三区久久| 国产精品一区二区三| 欧美日韩福利在线观看| 高清在线视频日韩欧美| 欧美午夜美女看片| 久久全国免费视频| 亚洲图中文字幕| 中文字幕欧美在线| 欧美日韩国产色| 亚洲成年网站在线观看| 2018国产精品视频| www.久久久久久.com| 国产97在线观看| 欧美成人精品在线视频| 欧美日韩国产一中文字不卡| 欧美精品亚州精品| 国产成人综合亚洲| 国产成人精品久久亚洲高清不卡| 日本高清不卡的在线| 欧美亚洲午夜视频在线观看| 色在人av网站天堂精品| 91国产高清在线| 欧美精品免费播放| 亚洲午夜女主播在线直播| 成人黄色免费网站在线观看| 精品国产福利在线| 亚洲视频欧美视频| 2018日韩中文字幕| 在线精品国产成人综合| 国产精品扒开腿做爽爽爽男男| 成人精品久久一区二区三区| 亚洲影视中文字幕| 国产成人拍精品视频午夜网站| 91精品国产自产在线老师啪| 国产精品www网站| 国产精品无码专区在线观看| 91精品视频专区| 国产精品丝袜高跟| 亚洲人成网站在线播| 欧美大片免费观看在线观看网站推荐| 国产成人精品国内自产拍免费看| 日本免费久久高清视频| 欧美在线欧美在线| 欧美黄色小视频| 国产在线视频欧美| 日韩中文字幕在线精品| 久久精品99国产精品酒店日本| 国产精品日韩久久久久| 在线日韩精品视频| 欧美精品一区三区| 精品在线欧美视频| 俺去亚洲欧洲欧美日韩| 欧美大奶子在线| 国产精品视频区| 国产精品自产拍在线观| 欧洲美女7788成人免费视频| 性欧美长视频免费观看不卡| 国内精品一区二区三区| 97在线视频免费观看| 亚洲综合在线中文字幕| 国内伊人久久久久久网站视频| 久久99久久99精品中文字幕| 91系列在线播放| 国产精品久久av| 国产在线播放不卡| 久久久在线视频| 国产精品扒开腿做爽爽爽视频| 青草热久免费精品视频| 91系列在线播放| 日韩av高清不卡| 国产在线视频2019最新视频| 不卡在线观看电视剧完整版| 成人国产在线激情| 国产成人在线精品| 亚洲日本aⅴ片在线观看香蕉| 国产精品极品美女在线观看免费| 国产精品va在线播放我和闺蜜| 欧美精品精品精品精品免费| 国产亚洲aⅴaaaaaa毛片| 91亚洲精品视频| 日韩在线免费视频观看| 亚洲free性xxxx护士hd| 精品久久久久久久久久国产| 久久精品视频亚洲| 成人高h视频在线| 国产精品免费观看在线| 欧美在线观看网站| 国产成人精品视频在线| 亚洲第一免费网站| 九九九热精品免费视频观看网站| 国产精品www色诱视频| 91在线免费看网站| 一区二区三区高清国产| 精品中文字幕在线2019| 日韩精品高清视频| 欧美激情一区二区久久久| 日韩精品中文字幕在线观看| 亚洲性线免费观看视频成熟| 欧美激情在线视频二区| 亚洲第一男人天堂| 国产精品露脸自拍| 亚洲精品一区av在线播放| 最近免费中文字幕视频2019| 欧美成人免费小视频| 精品激情国产视频| 91精品国产乱码久久久久久蜜臀| 在线观看日韩av| 爽爽爽爽爽爽爽成人免费观看| 日韩av片免费在线观看| 久久精品国产电影| 亚洲精品电影网站| 欧洲成人免费aa| 亚洲最大成人在线| 91国产精品91| 91成人在线观看国产| 亚洲视频在线视频| 欧美成人在线免费| 中文字幕亚洲情99在线| 欧美影院久久久| 性金发美女69hd大尺寸| 欧美激情国内偷拍| 精品国产老师黑色丝袜高跟鞋| 一区二区三区天堂av| 欧美亚洲国产日韩2020| 精品视频在线观看日韩| 日韩欧美国产网站| 国产精品啪视频| 国产国语videosex另类| 日韩在线观看免费av| 亚洲欧洲激情在线| 国产一区二区日韩| 色婷婷av一区二区三区久久| 欧美国产日韩视频| 北条麻妃99精品青青久久| 91网站免费观看| 日本高清视频一区| 欧美野外猛男的大粗鳮| 国产一区二区激情| 精品国产一区二区三区久久久狼| 久久99精品久久久久久青青91| 久久久视频在线|