AngularJS擴展HTML
AngularJS擴展了HTML,使用ng指令。ng-app指令定義了一個AngularJS應用程式。ng-model指令將HTML控制項(input、select、textarea)的值綁定到應用程式數據上。
ng-bind指令將應用程式數據綁定到HTML視圖上。當網頁加載完成後,AngularJS開始運行。ng-app指令告訴AngularJS,div元素是AngularJS應用程式的“所有者”。
ng-model指令將輸入欄位的值連接到應用程式變量名上。ng-bind指令將p元素的innerHTML屬性連接到應用程式變量名上。
※強弱危機分析
優勢:
- angularjs能夠將html擴展為動態的模板,透過數據綁定和依賴注入,讓開發者能更方便地建立單頁式應用程式。
- angularjs自帶多種指令,可以讓開發者快速完成一些常見的功能,如表格、列表等。
- angularjs支援模組化開發,有助於提高程式碼的可重用性和可維護性。
劣勢:
- 由於angularjs是以javascript為基礎的框架,因此在某些不支援javascript或javascript執行效能較差的環境下可能會有使用上的限制。
- 對於初學者來說,angularjs有著相當高的學習曲線,並且需要預先掌握大量知識與技術才能有效利用其特性。
- 由於angularjs強調雙向數據綁定與依賴注入等特性,在設計和實作上可能會變得複雜和難以理解。
機會:
- 隨著web 2.0時代的到來, 單頁式應用程式的需求日益增加,angularjs正好可以提供有效的解決方案。
- 由於html5和css3的普及,開發者可以使用angularjs來建立更豐富、更動態的網頁介面。
- 隨著大數據與ai技術的發展,如何將資料有效地展示在網頁上成為一個重要議題,而angularjs剛好提供了相關功能。
威脅:
- 市場上有許多其他強力的javascript框架比如react或vue等,可能會與angularjs產生競爭。
- 由於javascript本身語言特性以及執行效能問題,可能會限制了angularjs的進一步發展。
- 對於需要高度客製化或是具有特殊需求的專案而言,angularjs可能無法完全滿足其需求。
AngularJS指令
AngularJS允許您使用稱為指令的新屬性來擴展HTML。AngularJS具有一套內置的指令,可為您的Web應用程式添加功能。AngularJS還允許您定義自己的指令。
AngularJS指令是帶有ng前綴的HTML屬性。ng-app指令準備了一個AngularJS應用程式。ng-init指令準備應用程式數據。
ng-model指令將HTML控制項的值連接到應用程式數據上。ng-app指令還告訴AngularJS div元素是該AngularJS應用程式的“所有者”。{{ firstName }}表達式是一個數據綁定表達式。
在AngularJS中,數據綁定將AngularJS表達式與AngularJS數據相結合。這裡{{ firstName }}與ng-model=′firstName′進行了綁定。在下面的例子中,有兩個文本欄位和兩個ng-model指令一起使用:
重複的HTML元素
ng-repeat指令,如其名所示,可以重複顯示HTML元素:ng-repeat指令基本上會根據一組項目的數量將HTML元素複製多次。
ng-app指令
ng-app指令是AngularJS應用程式的根項目。當網頁載入時,ng-app指令會自動準備應用程式。
ng-init指令
ng-init指令用於設定AngularJS應用程式的初始值。通常情況下,你不會使用ng-init,而是會使用控制器或模組來取代它。
ng-model指令
透過 ng-model 指令,你可以將輸入欄位的值與 JavaScript 變數連結起來。這樣做的好處是讓程式碼更加易讀、易懂,就像人類自然使用語言一樣。
創建新的指令
除了所有內建的AngularJS指令之外,你還可以生成自己的指令。新指令是基於.directive函數來創建的。要使用新指令,請將HTML元素命名為與新指令相同的標籤。
一個指令必須使用駝峰命名法,例如w3TestDirective,但在引用時,你必須使用連字元分隔符號,例如w3-test-directive:> 你可以通過以下方式調用一個指令:
限制事項
你可以限制指令只能被某些特定的方法調用。通過添加一個值為′A′的restrict屬性,該指令只能被屬性引發。
雙向綁定
當模型改變時,視圖也會相應地反映出來;而當視圖發生變化時,模型也會隨之更新。這種即時且自動的同步機制確保了模型和視圖在強大的網絡應用中始終保持一致。這使得整個過程更加順暢、易於理解,更貼近人類語言表達方式。
驗證用戶輸入
ng-model指令可以提供應用程式資料的類型驗證(數字、電子郵件、必填):在上面的範例中,只有當ng-show屬性中的表達式為真時,span元素才會被顯示出來。
應用程式狀況
ng-model指令可以為應用程式數據提供狀態(無效、已修改、已觸摸、錯誤)。
相關數據:
- 根據stack overflow 2021年度報告,angularjs在所有前端框架中排名第四,使用率為26.2%。 來源: stack overflow developer survey 2021
- 根據github數據,截至2022年3月底, angularjs github儲存庫有59300個星星。 來源: github
- 根據indeed工作板上的資料,在美國對angularjs專長需求佔所有網頁開發人才需求比率約為11.4%。 來源: indeed.com
- npm統計數據指出, 在過去12個月內(截至2022年3月), angularjs每週平均下載次數約為300,000次 來源: npm trends
- 由hackerrank 2020年開發者技能報告顯示,在全球受訪的開發者中,約有30%表示曾經使用過angularjs。 來源: hackerrank developer skills report 2020