首頁 web前端 js教程 Angularjs 基礎入門_AngularJS

Angularjs 基礎入門_AngularJS

May 16, 2016 pm 04:24 PM
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可以手動初始化腳本,我們用這兩個來初始化這個腳本

複製程式碼 程式碼如下:


  
  
  
  Bootstrap-manual
  
  
  
  這裡是ng-app外面的~~{{1 2}}
  
這裡是ng-app裡面~~~ {{1 2}}

  
  
  
  

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 ingle s user interactions with the view are reflected in the scope ingle s soo source of truth.

  Some directives such as ng-repeat clone D。 🎜>

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,當編譯的時候匹配是這樣的,舉例如下:

複製程式碼 程式碼如下:


  
 

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

複製程式碼 程式碼如下:



  

  

  

  

一般我們使用ng-bind對應ngBind,這種格式
$compile可以符合directive基於元素名稱,屬性,類別名稱以及註解

複製程式碼 程式碼如下:


  
  
  

 在編譯過程中,compiler透過$interpolate服務來匹配文字與屬性中的嵌入表達式(如{{something}})。這些表達式將會註冊為watches,並且作為digest cycle的一部分,一同更新。下面是一個簡單的interpolation:
Angularjs 基礎入門_AngularJSHello {{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 = '
';
  // 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屬性綁定

複製程式碼 程式碼如下:


  
  

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP基礎教學:從入門到精通 PHP基礎教學:從入門到精通 Jun 18, 2023 am 09:43 AM

PHP是一種廣泛使用的開源伺服器端腳本語言,它可以處理Web開發中所有的任務。 PHP在網頁開發的應用廣泛,尤其是在動態資料處理上表現優異,因此被許多開發者喜愛和使用。在本篇文章中,我們將一步步講解PHP基礎知識,幫助初學者從入門到精通。一、基本語法PHP是一種解釋性語言,其程式碼類似HTML、CSS和JavaScript。每個PHP語句都以分號;結束,註

2022年最新5款的angularjs教學從入門到精通 2022年最新5款的angularjs教學從入門到精通 Jun 15, 2017 pm 05:50 PM

Javascript 是一個非常有個性的語言. 無論是從程式碼的組織, 還是程式碼的程式設計範式, 或物件導向理論都獨具一格. 而很早就在爭論的Javascript 是不是物件導向語言這個問題, 顯然已有答案. 但是, 即使Javascript 叱吒風雲二十年, 如果想要看懂jQuery, Angularjs, 甚至是React 等流行框架, 觀看《黑馬雲課堂JavaScript 高級框架設計視頻教程》就對了。

使用PHP和AngularJS建立響應式網站,提供優質的使用者體驗 使用PHP和AngularJS建立響應式網站,提供優質的使用者體驗 Jun 27, 2023 pm 07:37 PM

在現今資訊時代,網站已成為人們獲取資訊和交流的重要工具。一個響應式的網站能夠適應各種設備,為使用者提供優質的體驗,成為了現代網站開發的熱點。本篇文章將介紹如何使用PHP和AngularJS建立響應式網站,進而提供優質的使用者體驗。 PHP介紹PHP是一種開源的伺服器端程式語言,非常適合Web開發。 PHP具有許多優點,如易於學習、跨平台、豐富的工具庫、開發效

使用PHP和AngularJS建立Web應用 使用PHP和AngularJS建立Web應用 May 27, 2023 pm 08:10 PM

隨著網路的不斷發展,Web應用已成為企業資訊化建設的重要組成部分,也是現代化工作的必要手段。為了讓Web應用能夠方便開發、維護和擴展,開發人員需要選擇適合自己開發需求的技術框架和程式語言。 PHP和AngularJS是兩種非常流行的Web開發技術,它們分別是伺服器端和客戶端的解決方案,透過結合使用可以大大提高Web應用的開發效率和使用體驗。 PHP的優勢PHP

Linux可以零基礎學習嗎?需要學什麼? Linux可以零基礎學習嗎?需要學什麼? Feb 19, 2024 pm 12:57 PM

  想要從事IT行業,但是有不想要學習程式設計該選擇哪門技術合適呢?當然是Linux運維了。 Linux是市場上非常受歡迎的技術,應用範圍廣泛,就業前景好,受到了很多人的喜歡。那麼問題來了,Linux運維零基礎可以學習嗎?  在伺服器市場上,Linux系統因為穩定安全、免費開源和高效便捷等優點在市場佔有率高達80%,由此可以看得出來Linux應用是非常廣泛的。無論是現在還是未來,學習Linux都是非常好的選擇。至於零基礎可以學嗎?我的答案是當然可以了。老男孩教育Linux面授班專門針對零基礎人員設

PHP基礎入門:如何使用echo函數輸出文字內容 PHP基礎入門:如何使用echo函數輸出文字內容 Jul 30, 2023 pm 05:38 PM

PHP基礎入門:如何使用echo函數輸出文字內容在PHP程式設計中,常常需要在網頁上輸出一些文字內容,這時就可以使用echo函數。本文將介紹如何使用echo函數輸出文字內容,並提供一些範例程式碼。在開始之前,首先要確保你已經安裝了PHP,並且配置了運行環境。如果還沒有安裝PHP,你可以在PHP官方網站(https://www.php.net)上下載最新的穩定版本。

學習Go語言變數的基礎知識 學習Go語言變數的基礎知識 Mar 22, 2024 pm 09:39 PM

Go語言是一種由Google開發的靜態類型、編譯型語言,其簡潔、高效的特性受到了廣泛的開發者關注和喜愛。在學習Go語言的過程中,熟練變數的基礎知識是至關重要的一步。本文將透過具體的程式碼範例來講解Go語言中變數的定義、賦值、類型推論等基礎知識,幫助讀者更能理解和掌握這些知識點。在Go語言中,定義一個變數可以使用關鍵字var,即var變數名變數類型的格

使用Flask和AngularJS建立單頁Web應用程式 使用Flask和AngularJS建立單頁Web應用程式 Jun 17, 2023 am 08:49 AM

隨著Web技術的快速發展,單頁Web應用程式(SinglePageApplication,SPA)已成為越來越流行的Web應用程式模型。相較於傳統的多頁Web應用程序,SPA的最大優勢在於使用者感受更加流暢,同時伺服器端的運算壓力也大幅減少。在本文中,我們將介紹如何使用Flask和AngularJS來建構一個簡單的SPA。 Flask是一款輕量級的Py

See all articles